WebAssembly builds using Jaylib (Janet bindings for Raylib, experimentally using Raylib v6) — gitlab.com/kreels/jaylib-wasm
... Done with help from DeepSeek!
"Congrats! You created your first window!" — the classic raylib hello-world example.
windowFrame-rate-independent vs frame-rate-dependent movement comparison. Scroll to change FPS, press R to reset.
timingMove a ball with arrow keys. Simple keyboard input demo using IsKeyDown.
keyboardBall follows cursor, click buttons to change color. Press H to toggle cursor visibility.
mouseScroll to move a box up and down. Displays the current Y position.
mouseVisualize gamepad input with Xbox, PS3, and generic controller layouts. Left/Right to switch gamepads.
inputTouch gesture detection and logging. Detects tap, double-tap, hold, drag, swipe, pinch in/out.
touchMulti-touch input tracking. Touch the screen in multiple places to see numbered circles appear at each touch point.
touchFree 2D camera with player movement, zoom, and rotation. Scroll to zoom, A/S to rotate, R to reset.
cameraTwo mouse zoom modes: wheel-based or right-click drag. Left-click to pan, zoom toward cursor point.
camera mouseSide-scrolling platformer with 5 camera modes: center follow, clamp, smooth, landing-even, and bounds-push.
camera platformerTwo-player split screen with independent cameras. W/S/A/D vs arrow keys on a shared grid world.
camera multiplayerD-Pad virtual controller with touch and mouse support. Move the player with on-screen buttons.
touch mouseBasic 3D camera with perspective projection. A red cube with wireframe on a grid, showcasing 3D rendering fundamentals.
3D cameraSimple screen state machine with LOGO, TITLE, GAMEPLAY, and ENDING screens. Press ENTER or tap to advance.
state-machineFree 3D camera with mouse look, scroll to zoom, click+drag to pan. Red cube on grid with controls overlay.
3D cameraFirst-person camera with 4 switchable modes (free, FPS, third-person, orbital). Random columns in a walled arena.
3D camera3D-to-2D projection: 3D cube with 2D label hovering above it. Demonstrates GetWorldToScreen coordinate mapping.
3D coordinate-mappingManual FPS camera implementation with physics, head bobbing, crouching, and mouse look. Checkerboard floor with towers.
3D camera fpsTwo-player split screen in 3D. Player 1 (W/S) and Player 2 (UP/DOWN) move through a grid of cube trees.
3D camera multiplayerAbstract input actions system mapping keys and gamepad buttons. TAB toggles between WASD and Arrow key schemes.
input gamepadGenerates and displays a new random integer every 2 seconds. Simple demo of randomness and frame counting.
randomRestricts rendering to a mouse-following rectangular region. Press S to toggle scissor mode on/off.
scissorToggle window states (fullscreen, resizable, undecorated, etc.) and watch a bouncing ball. Timed flag cycling mode.
window flagsRender-to-texture scaling with letterboxing. Resize the window and see the game view scale with virtual mouse tracking.
window scalingPersistent score storage using IndexedDB. Save/load values that survive page reloads. R for random, ENTER to save, SPACE to load.
storage persistenceFirst-person camera with ray casting. Click to shoot a ray and detect collision with a 3D cube. Right-click toggles cursor.
3D camera ray-pickingDrag and drop files onto the window to register their paths. Each dropped file path is listed with alternating row highlights.
input drag-and-dropSmooth analog clock with hour, minute, and second hands. Pure shapes — circles and lines, no external assets.
2D mathMoving box collides with a mouse-controlled box. Visual collision rectangle, pause with SPACE.
2D collisionTwo eyes track the mouse cursor. Irises stay within the sclera bounds using circle collision checks.
2D mathFading trail of circles follows the mouse cursor. Demonstrates position-history arrays and color fading.
2D fadePhysics simulation with up to 5000 balls. Grab and throw with mouse, scroll to change gravity, middle-click to shake.
2D physicsDraw with symmetry — 6-fold kaleidoscope mirroring. Undo, redo, and reset your patterns.
2D drawingChaotic double pendulum with fading trail rendered to an offscreen texture. Beautiful physics simulation.
2D physics trailDual-mode clock — toggle between analog and 7-segment digital display. Pure shapes, no external assets.
2D shapesTime displayed as 144 mini analog clock faces with smooth animated transitions. Space toggles 12/24h mode.
2D shapes animationProcedural particle system with WATER, SMOKE, and FIRE types. LEFT/RIGHT to switch, UP/DOWN for emission rate, mouse to move emitter.
2D particlesDraw rainbow lines on a canvas — Left mouse to draw, Right to erase, Middle to clear. Scroll to change thickness.
2D drawing render-textureAnimated Penrose tiling via Lindenmayer (L-system) turtle graphics. UP/DOWN adjusts generations (0-4).
2D math l-systemClassic 2D starfield flying through space. Space toggles lines/circles, mouse wheel adjusts speed.
2D starsFixed angle lines (0°, 30°, 60°, 90°) with a rotating HSV-colored line. Demonstrates trig and angle math.
2D math trigonometryDrag start/end points with mouse to shape a cubic Bezier curve. Points enlarge on hover, turn red while dragging.
2D bezierDynamic 2D lighting with shadow volumes. Drag light #1, right-click to add lights, V to toggle debug view.
2D lighting shadowsParallax scrolling with three layers (background, midground, foreground) moving at different speeds.
2D parallaxCycle through blend modes (alpha, additive, multiplied, add-colors) with textured foreground/background.
2D blendingTextured polygon with continuous rotation. Uses custom immediate-mode rlgl draw function.
2D rlglClassic Scarfy running animation from a 6-frame spritesheet. Adjust frame speed with left/right arrows.
2D spritesheet animationPaste images from clipboard with Ctrl+V. Click to place, R to reset. Up to 20 images at once.
2D clipboard textureDraw text onto an image using custom font rendering. Space toggles font atlas view.
2D text font9 image effects: grayscale, tint, invert, contrast, brightness, blur, flip vertical/horizontal. Click or arrow keys to select.
2D image effectsRoad texture mapped along a cubic bezier curve using rlgl quads. Drag control points, +/- for width, LEFT/RIGHT for segments.
2D bezier rlglTexture tiling with pattern and color palette selection. Scale and rotation controls for the tiled output.
2D tiling patternClick to trigger an explosion sprite-sheet animation with sound. Cycles through frames on a 5×5 grid.
2D sprites audioBenchmark: spawn thousands of textured, tinted bunnies with physics. Hold mouse to spawn, P to pause.
2D benchmark batchingProcedural textures: linear/radial/square gradients, checked, white noise, and cellular noise.
2D procedural noiseDrawTexturePro with source/destination rectangles and rotation. Scarfy sprite rotated around its center point.
2D rotation spritesheet2D tilemap with fog-of-war visibility. Arrow keys to move the player, smooth bilinear fog via render texture.
2D tilemap render-textureLoad and render both BMFont (AngelCode) and TTF fonts. Hold SPACE to toggle between them.
fonts textCompare point, bilinear, and trilinear texture filtering on a scaled TTF font. Scroll to change size, 1/2/3 to switch filter.
fonts filteringScore, hiscore, lives, and elapsed-time display using Janet's string/format for text formatting.
text formattingDynamic glyph loading for Latin, Greek, Cyrillic, CJK, and more. Press 1-4 to add codepoint ranges.
fonts unicodeSigned Distance Field font rendering for crisp text at any scale. Hold SPACE to compare with default font.
fonts sdf shaderEight free sprite fonts included with raylib, each with its designer credit and unique color.
fonts spriteLoad a font atlas containing only the glyphs needed for Japanese text. Toggle between atlas view and rendered text.
fonts unicode utf-8Render 2D text in 3D space with wave animation effects. Orbital/free camera, alpha discard shader, cube clicking.
3D text rlgl shader3D ray casting with mesh-level collision. Hover over the tower model to see per-triangle hit detection.
3D collision ray-pickingSimple textured cube rotating around a tilted axis. Built from generated mesh using DrawModelEx.
3D model3D maze generated from a 2D cubicmap image. Orbit the camera around the model with minimap overlay.
3D model orbitalNavigate a maze in first-person with WASD and mouse. Collision detection using pixel data from the cubicmap.
3D camera collision3D geometric shapes: cubes, spheres, cylinders, capsules, and cones with wireframe overlays on a grid.
3D shapesWWI plane model with independent yaw, pitch, and roll controls. Uses matrix-based Euler angle rotation.
3D model rotationToggle between perspective and orthographic 3D views. Spacebar switches projection mode. Shows various 3D shapes.
3D camera projectionFirst-person view inside a cubemap skybox. Panoramic skybox with grid floor, shader-based cubemap rendering.
3D shader cubemap3D terrain generated from a heightmap image. Orbital camera with minimap showing the source image.
3D model terrainTextured cubes drawn with rlgl immediate-mode vertex data. Shows full-texture and region-textured cubes.
3D rlgl textureRobot model with 20+ animations. Switch between animations, adjust playback speed, pause/resume with keyboard controls.
3D animation modelBlend smoothly between two robot animations. Two animation slots with keyboard-controlled blending transition.
3D animation blendingCycle through 8 procedurally-generated 3D meshes: plane, cube, sphere, hemisphere, cylinder, torus, knot, and poly.
3D procedural3D collision detection between boxes and spheres. Move the player cube with arrow keys — turns red on contact.
3D collisionAnimated IQM model (Guy) with orbital camera. Demonstrates loading and playing IQM model animations in 3D.
3D animation iqmAnimated M3D model (CesiumMan) with orbital camera. Cycle through the model's animations with LEFT/RIGHT.
3D animation m3dPlace decals on a 3D character model with mouse clicks. Ray collision on mesh triangles, right-click to orbit camera.
3D model decals ray-pickingMagicaVoxel (.vox) models with a voxel-lighting shader and four point lights. Click to cycle models, WASD and middle mouse to move the camera.
3D model voxel lightingSun, Earth, and Moon orbits rendered with rlgl immediate-mode vertex data. Low-level pseudo-OpenGL 1.1 style drawing.
3D rlgl solar-systemAnimated glTF robot model with skeletal animations. Orbital camera; use LEFT/RIGHT keys to switch between animations.
3D model gltf animation3D scene with post-processing shaders. Church model, torus, and 12 GLSL fragment shaders to cycle through.
3D shadersPhysically-based rendering with a car and floor. Albedo, metalness, normal, and emission maps. Toggle 4 point lights with keys 1-4.
3D shader pbr lightingWatermill model with grayscale shader applied. Free 3D camera, demonstrates applying custom shaders to models.
3D shader modelShader-based outline effect on a texture. Scroll mouse wheel to change outline thickness in real-time.
2D shader outlineMask shader blending a plasma texture with an animated mask across three procedural models. First-person camera.
3D shader maskWavy distortion shader applied to a tiled space texture.
2D shader waveExponential fog effect with three procedural models (torus, cube, sphere). Up/Down to adjust fog density.
3D shader fog lightingTangent-space normal mapping on a spinning plane. WASD to move light, N to toggle normal map on/off.
3D shader normal-map lightingToon-shaded car model with an inverted-hull outline. Z toggles cel shading, C toggles the outline, Q/E adjust toon band count.
3D shader toon outlineVisualizes the depth buffer as a grayscale image. Free 3D camera with WASD/mouse controls.
3D shader depthDirectional light shadow mapping with PCF filtering. Arrow keys rotate the light, animated robot model.
3D shader shadow10,000 instanced cubes rendered with a single draw call. Orbital camera, lighting shader.
3D shader instancingConway's Game of Life running on the GPU. Space to pause, 1-9 to load patterns, drag to pan, wheel to zoom.
shader GPU simulation cellular-automataMusic streaming with real-time LPF and delay effects. Play/pause/stop controls.
audio streamingLoad and play WAV and OGG sound files with keyboard triggers.
audio soundPlay XM tracker music with pitch control and animated circle visuals.
audio musicMP3 music streaming with pan, volume, and progress controls. Pause/resume and restart support.
audio streaming musicPlay up to 10 sound aliases from a single source. See which slots are active and queued.
audio sound aliasProcedural sine wave generation with real-time frequency and pan controls. Includes waveform visualization.
audio procedural waveform3D spatialized audio with a free camera and orbiting sound source. Distance attenuation and stereo panning.
audio 3D spatial2D particle animation with smooth circle motion and FPS display. Pure code, no external assets.
2D particlesIn-browser SQLite3 database via OPFS + Web Worker. Run SQL queries directly in the browser.
storage sqliteAnimated ball using Robert Penner easing functions. Elastic, cubic, and fade transitions in sequence.
easing animationIn the spirit of Mulga Bill, with fond memories of Dad who always encouraged me to give it a go.