Full-size demo gallery
Every example at full size, linked from the example catalog's preview thumbnails. Every GIF here is committed. They are regenerated by bb record, a maintainer-only task driving a screen-capture tool that is not publicly released; the per-example capture settings and input timelines live in scripts/demo_manifest.edn.
๐ฎ Original games (9)
hello-world
the minimal raylib window + text (Q exits, F1 toggles debug stats)

pong
two-paddle classic, P1 (W/S) vs P2 (K/J)

asteroids
the classic vector shooter (rotate/thrust/fire)

asteroids2
an alternate asteroids build (rotate/thrust/fire)

tetris
the block-stacking puzzle (move/rotate/drop)

vampire-survivors
auto-fire survival: move (WASD), waves chase you

snake
the classic snake (arrow keys, grow, don't crash)

floppy
flap through the pipe gaps (SPACE)

retro-maze-3d
a GameBoy-style 3D maze escape (WASD + mouse look)

๐ฆ Core (37)
bouncing-ball
a ball bouncing around the window (SPACE pauses, G toggles gravity)

following-eyes
two eyes track the mouse

screen-manager
a LOGO/TITLE/GAMEPLAY/ENDING state flow (ENTER advances)

input-keys
steer a ball with the arrow keys

input-mouse
a ball follows the mouse; click to recolor

input-gamepad
a live gamepad axis/button readout

mouse-wheel
scroll a box with the mouse wheel

gestures-testbed
a testbed for raylib's touch/click gesture detection

scissor-test
a scissor rectangle clips a grid (S toggles, mouse moves it)

random-values
a new random value every two seconds

camera-2d
a 2D camera over a scene (arrows pan, A/S rotate, wheel zooms)

camera-3d-free
a free-orbit 3D camera (mouse look, wheel zoom)

split-screen-3d
two 3D viewports, one per player (W/S, UP/DOWN)

first-person-3d
a first-person camera walkthrough (WASD + mouse, 1-4 switch modes)

camera-fps
an FPS camera with jump/crouch physics (WASD, Space, Ctrl)

world-screen
project 3D world points to 2D screen space (mouse, wheel)

picking-3d
click to raycast and pick a 3D cube

collision-area
AABB collision between two boxes (mouse moves, SPACE)

colors-palette
every named raylib color in a grid (hover, SPACE)

logo-anim
the raylib logo animating in (R replays)

window-should-close
intercept the close button with a Y/N confirm

camera-2d-platformer
5 platformer camera-follow styles (SPACE cycles, C/R/wheel)

window-letterbox
resolution-independent rendering via letterboxing (SPACE, resize)

camera-2d-split-screen
two players, two cameras, one grid (P1 W/S/A/D, P2 arrows)

camera-3d-mode
a minimal 3D scene, one cube on a grid

delta-time
frame-rate independent vs fixed-step motion (wheel changes the FPS cap, R resets)

input-gestures
a running log of detected touch gestures (click, drag, or flick in the test area)

input-multitouch
a numbered circle per touch point

input-virtual-controls
an on-screen D-pad (click the pad)

keyboard-testbed
an on-screen ENG-US keyboard that lights up as you press keys (hover highlights a key)

render-texture
a bouncing ball drawn into an offscreen target, then blitted

smooth-pixelperfect
a pixel-aligned world viewed through a sub-pixel smooth camera
![]()
storage-values
save and load values to a file (R randomises, ENTER saves, SPACE loads)

undo-redo
a ring-buffer undo history on a grid (arrows move, SPACE recolours, CTRL+Z / CTRL+Y)

viewport-scaling
six ways to fit a fixed-resolution game onto a resizable window (click < > to change resolution and mode)

input-actions
a box steered through an action layer, so WASD and the arrow keys can drive the same actions (TAB swaps keysets)

clipboard-text
cut, copy and paste against the system clipboard, by button or by CTRL+X / CTRL+C / CTRL+V

๐ท Shapes (28)
logo-raylib
the raylib logo built from rectangles + text

logo-raylib-anim
the logo animating together, piece by piece (R replays)

basic-shapes
circles, rectangles, triangles, polygons + an rlgl triangle

rectangle-scaling
drag the bottom-right corner to resize a rectangle

mouse-trail
a fading trail follows the cursor

lines-bezier
a cubic bezier curve, drag the endpoints

easings-ball
a ball animating along an easing curve (ENTER replays)

ball-physics
grab, throw, and resize bouncing balls (click, right-click, wheel)

simple-particles
water/smoke/fire particle effects (arrows switch, click emits)

dashed-line
a dashed line follows the mouse (arrows, C)

starfield-effect
a 3D starfield flying toward the camera (SPACE, wheel)

easings-box
a grid of boxes, each on a different easing curve (SPACE resets)

double-pendulum
chaotic double-pendulum motion + trail

lines-drawing
click-drag to paint a rainbow fan of thick lines

easings-rectangles
a grid of rectangles animating on easing curves (SPACE replays)

bullet-hell
rows of bullets fired from a rotating circle (ENTER switches between texture and circle drawing)

clock-of-clocks
digits drawn from a grid of analogue clocks (SPACE toggles 12/24h)

easings-testbed
all 28 easing curves, one per axis (arrows pick the curves, ENTER plays)

ellipse-collision
steer one ellipse into another (A/B switch which one the mouse drives)

math-angle-rotation
fixed and sweeping angle lines

penrose-tile
an L-system Penrose tiling drawn by turtle (UP/DOWN change the generation count)

circle-sector-drawing
a circle sector with its angles, radius and segment count on sliders

kaleidoscope
mouse strokes repeated around six-fold symmetry and mirrored (< and > step through the stored lines)

recursive-tree
a binary tree grown by splitting each branch in two (sliders set the angle, length, decay and depth)

ring-drawing
a ring with its radii, angles and segment count on sliders, and three draw modes to overlay

rounded-rectangle-drawing
a rounded rectangle with its corner roundness, size and outline thickness on sliders

hilbert-curve
a Hilbert curve drawn stroke by stroke, hue cycling along its length (a spinner sets the order)

math-sine-cosine
the unit circle animated, with sine, cosine, tangent and the related angles drawn against it

๐ Text (3)
writing-anim
a message types itself out (SPACE speeds up, ENTER restarts)

format-text
padded score + MM:SS timer readouts

input-box
type into a text box (click to focus, Backspace to edit)

๐ผ๏ธ Textures (4)
background-scrolling
a parallax-scrolling background

sprite-animation
a spritesheet character walk cycle (LEFT/RIGHT)
![]()
srcrec-dstrec
source and destination rectangles with rotation applied

tiled-drawing
one patch of a texture atlas tiled across the window, with the pattern, tint, scale and rotation all selectable

โจ Shaders (3)
basic-lighting
dynamic per-pixel lighting (mouse moves it, Y/R/G/B toggle lights)

ascii-rendering
the scene rendered to an offscreen target, then post-processed into ASCII glyphs (arrows resize the cells)

palette-switch
eight near-black bands that a fragment shader remaps through a palette, so the colour on screen is never drawn by the program

๐ Audio (4)
audio-module
a music-driven waveform/spectrum visualizer

sound-loading
load and play a WAV/OGG sound effect (SPACE, ENTER)

music-stream
stream an MP3 with play/pause/seek (SPACE, P, arrows)

sound-multi
fire the same sound multiple times, overlapping (SPACE)

๐ฟ Models (25)
geometric-shapes
3D primitive shapes on display

waving-cubes
an NxN grid of cubes rippling in 3D

box-collisions
a player cube colliding with 3D boxes (arrow keys)

orthographic-projection
perspective vs orthographic (SPACE toggles)

tesseract-view
a rotating 4D hypercube projected to 2D

solar-system
Sun/Earth/Moon orbiting via the rlgl matrix stack

spinning-cubes
a row of cubes, each spinning with a color-cycling phase offset

point-cloud
~1500 points forming a rotating sphere (UP/DOWN adjusts)

wireframe-shapes
pyramid/octahedron/torus/helix in 3D lines (SPACE cycles)

camera-modes
Free/Orbital/FPS camera modes (1/2/3 switches, WASD)

ray-picking
click to select cubes via ray-picking

bouncing-spheres
spheres bouncing inside a 3D box (SPACE, R, G)

rotating-cube
a single cube spinning via the rlgl matrix stack (arrows, +/-, R)

particle-system
a 3D particle emitter (SPACE bursts, G toggles gravity, W/R reset)

dna-helix
a rotating double-helix structure (arrows, SPACE, R)

first-person-maze
walk a 3D maze in first person (WASD + mouse, M for map)

yaw-pitch-roll
yaw/pitch/roll rotation on a 3D model (arrows, SPACE, R)

lissajous-3d
3D Lissajous parametric curves (1-5 picks a pattern, W/S, SPACE)

lorenz-attractor
the Lorenz attractor's chaotic butterfly path (1-3, arrows, SPACE, R)

terrain-generation
procedurally generated terrain (1-3 picks an algorithm, G, W, SPACE)

mesh-generation
procedurally generated 3D meshes (Left/Right cycles, click, SPACE, R)

basic-voxel
an 8x8x8 block of cubes walked in first person, with left-click removing the one under the crosshair

billboard-rendering
two alpha billboards that always face the camera, drawn far-to-near so the transparency blends correctly

cubicmap-rendering
a 3D maze built from a 32x16 PNG, one cube per non-black pixel, textured from an atlas (P pauses the orbit)

heightmap-rendering
terrain generated from a greyscale PNG, each pixel's brightness read as an elevation
