The example catalog: 212 raylib demos in jank

A map of the whole suite. Each example is one namespace under raylib-examples/src/raylib_examples/, runnable by a friendly bb <name> task or the underlying lein with-profile +<name> run --disable-sandbox. bb info prints this grouping live; this page adds the "how it's wired" recipe at the end.

Run one, list them, or reel through all of them:

bb <name>          # e.g. bb starfield   (opens a window)
bb examples        # flat list with descriptions
bb info            # the grouped cheat-sheet below
bb run-all [secs]  # every example, N seconds each (unattended)

core: window, input, cameras, files (47)

previewbb nameshows
(none)screen-recordingRecord the window to an animated GIF
input-keysSteer a ball with the arrow keys
input-mouseA ball follows the mouse; click to recolor
input-mouse-wheelScroll a box with the mouse wheel
random-valuesA new random value every two seconds
camera-2dA free 2D camera over a skyline
basic-windowThe minimal raylib window + text
scissor-testA scissor rectangle reveals text
window-should-closeConfirm-before-exit on window close
delta-timeDelta-time vs per-frame movement
basic-screen-managerA LOGO/TITLE/GAMEPLAY/ENDING flow
camera-2d-platformerA platformer with 5 camera-follow modes
(none)input-gesturesLog detected mouse/touch gestures
(none)window-letterboxA fixed 640x480 game letterboxed on resize
camera-2d-split-screenTwo players, two cameras, split screen
smooth-pixelperfectSub-pixel smoothing of upscaled pixel art
camera-2d-mouse-zoomPan + zoom-to-cursor a 2D camera
world-screenA 2D label tracking a 3D cube (GetWorldToScreen)
camera-3dA red cube on a grid through a fixed 3D camera
picking-3dClick a 3D box to pick it with a world-space ray
input-multitouchA ball at every active touch/mouse point
input-virtual-controlsAn on-screen D-pad moving a player circle
(none)window-flagsToggle window state flags live with a bouncing ball
render-textureA ball bouncing inside a rotated off-screen render texture
monitor-detectorA scaled map of every attached monitor with its specs
input-actionsRemappable abstract actions (WASD/arrows) via a keyset map
highdpi-demoLogical-points vs physical-pixels grids with live DPI scale
(none)highdpi-testbedA HighDPI overlay: grid, monitor/DPI info, crosshair
random-sequenceColored bars in a no-repeat LoadRandomSequence
clipboard-textType + cut/copy/paste with the system clipboard
undo-redoA grid player with a 26-slot undo/redo ring buffer
directory-filesA keyboard file browser over the working directory
custom-loggingA trace-log callback timestamps every raylib line
drop-filesDrag files onto the window to list their paths
text-file-loadingLoad + word-wrap a text file, scroll it
compute-hashCRC32/MD5/SHA1/SHA256 + Base64 of typed text
storage-valuesSave/load a score pair to a binary storage file
keyboard-testbedAn on-screen ENG-US keyboard highlighting held keys
input-gestures-testbedA gesture dashboard with log, indicators and protractor
viewport-scalingA fixed game resolution scaled into a resizable window
camera-3d-freeA free-look 3D camera around a cube
camera-3d-first-personWalk a yard of random columns in first person
camera-3d-split-screenTwo players, two 3D cameras, split screen
camera-3d-fpsA physics FPS controller with head-bob and lean
vr-simulatorA 3D scene in stereo through a simulated Oculus Rift
automation-eventsA platformer recording and replaying its own input
input-gamepadA live controller diagram: buttons/sticks/triggers lit

shapes: 2D drawing, easing, rlgl (41)

previewbb nameshows
bouncing-ballA ball bouncing with optional gravity
colors-paletteEvery named raylib color in a grid
starfieldA perspective starfield flying at you
mouse-trailA fading trail follows the cursor
logo-animThe raylib logo assembling itself
double-pendulumChaotic double-pendulum motion + trail
particlesWater / smoke / fire particle effects
collision-areaAABB collision between a bouncing + mouse box
ball-physicsGrab and throw balls under gravity
easings-rectanglesA grid shrinks and spins via easing fns
following-eyesTwo eyes track the mouse cursor
lines-bezierDrag endpoints to reshape a Bezier curve
rectangle-scalingResize a rectangle by its corner
dashed-lineA dashed line follows the mouse
basic-shapesA gallery of raylib's basic shapes
logo-raylibThe raylib logo from rectangles + text
easings-ballA ball animated through easing stages
easings-boxA box animated through five easing stages
math-angle-rotationFixed-angle lines + a spinning line
ellipse-collisionOverlap test between two ellipses
vector-angleTwo ways to measure an angle
penrose-tileA Penrose tiling grown with an L-system
digital-clockA live clock (digital + analogue modes)
clock-of-clocksDigits drawn from grids of little clocks
lines-drawingA paint canvas (RenderTexture)
easings-testbedAn interactive testbed for all 28 easings
bullet-hellA magic circle spraying bullet spirals
ring-drawingA ring/annulus with adjustable angles
circle-sector-drawingA circle sector with adjustable angles
rounded-rectangleA rounded rectangle, size/roundness knobs
recursive-treeA binary fractal tree with live knobs
triangle-stripA rainbow triangle-strip fan
math-sine-cosineA live unit-circle trig visualization
hilbert-curveA rainbow Hilbert space-filling curve
pie-chartAn interactive pie chart with hover pop
kaleidoscopeDraw strokes mirrored with 6-fold symmetry
splines-drawingDraggable spline points, 4 spline types
rlgl-triangleA rainbow triangle via rlgl immediate mode
rlgl-color-wheelAn HSV color picker wheel via rlgl
top-down-lights2D lights casting shadow volumes off boxes
rectangle-advancedRounded gradient rectangles via rlgl

text: fonts, unicode, layout (16)

previewbb nameshows
format-textZero-padded score/time text readouts
writing-animA message types itself out
input-boxA hover-to-type text input box
words-alignmentAlign a word inside a rectangle
font-loadingLoad a BMFont and a TTF font (DrawTextEx)
font-filtersScale a TTF word, switch texture filters
font-spritefontThree colored sprite fonts from PNG atlases
sprite-fontsA gallery of raylib's eight bundled sprite fonts
rectangle-boundsWord-wrapped text in a mouse-resizable container
codepoints-loadingJapanese text rasterized to a minimal TTF font atlas
unicode-rangesGrow a multilingual font atlas by unicode range
inline-stylingText with inline color style tags
unicode-emojisClick emojis for multilingual speech bubbles
text-3d-drawingA bitmap font as textured quads in 3D, one span waving
strings-managementDrag/slice/shatter/glue text; 1-6 run TextTo* fns
font-sdfBitmap vs SDF font scaling, the SDF drawn through a shader

textures: images, sprites, render textures (32)

previewbb nameshows
(none)clipboard-imagePaste images from the system clipboard
image-generationNine procedural textures (gradients/noise)
logo-textureThe raylib logo loaded from a PNG file
sprite-animationScarfy runs: 6-frame spritesheet animation
srcrec-dstrecRotate + scale a sprite frame (DrawTexturePro)
background-scrollingParallax-scrolling cyberpunk street layers
image-loadingLoadImage (RAM) then LoadTextureFromImage (VRAM)
blend-modesFour 2D blend modes over the cyberpunk street
particles-blendingSpark particles trail the mouse (alpha/additive)
mouse-paintingA paint program on a RenderTexture canvas
sprite-buttonA 3-state sprite button with a click sound
bunnymarkThe classic bunny-spawning batching benchmark
fog-of-warA tile map hidden by smooth fog of war
tiled-drawingTile a texture pattern with scale/rotation/color
sprite-explosionClick to play a 5x5 explosion spritesheet + sound
sprite-stackingA voxel booth from 122 stacked rotated slices
npatch-drawingStretchable 9-patch / 3-patch UI panels
image-processingNine CPU image filters via pointer-taking Image* APIs
image-drawingOne texture composed from several CPU images
image-textText baked into an image with a TTF font
image-rotateThe logo rotated +45/+90/-90 in CPU memory
image-channelRGBA channels split + alpha-masked
image-kernelSharpen/sobel/gaussian convolution kernels
cellular-automataWolfram rule cellular automaton, editable rule
magnifying-glassA circular magnifier revealing hidden bunnies
to-imageRound-trip an image VRAM<->RAM (LoadImageFromTexture)
polygon-drawingA cat texture mapped onto a spinning polygon
raw-dataA .raw pixel dump + a code-generated checkerboard
textured-curveA road texture swept along a draggable Bezier
gif-playerAn animated GIF streamed frame-by-frame to a texture
framebuffer-renderingAn observer camera watching a subject camera + frustum
screen-bufferThe classic DOS fire effect in a palette-indexed buffer

models: meshes, 3D, OBJ/GLB (29)

previewbb nameshows
geometric-shapes3D cubes/spheres/cylinders/capsules on a grid
box-collisionsA player cube colliding with 3D obstacles
billboard-renderingCamera-facing billboards + an orbiting camera
(none)waving-cubes3375 rainbow cubes waving in 3D
orthographic-projectionToggle perspective vs orthographic camera
tesseract-viewA rotating 4D hypercube projected to 3D
rlgl-solar-systemSun/Earth/Moon via the rlgl matrix stack
textured-cubeTwo rlgl textured 3D cubes from a shared atlas
directional-billboardA sprite-sheet billboard that turns as the camera orbits
basic-voxelAn 8x8x8 voxel grid; click to ray-pick and remove
rotating-cubeA textured cube spinning on a tilted axis (rlgl)
model-loadingThe castle OBJ model loaded from disk, ray-pick selection
heightmap-renderingTerrain generated from a grayscale heightmap image
cubicmap-renderingA cube maze generated from a tiny black-and-white image
mesh-generationAll nine procedural mesh generators, checked-textured
first-person-mazeWalk a cubicmap maze in first person, with a radar
loading-gltfThe animated glTF robot, switchable animations
yaw-pitch-rollFly a WWI plane through pitch/yaw/roll, easing level
mesh-pickingA mouse ray picks the closest quad/sphere/box/mesh
loading-iqmThe classic IQM guy walking on loop
loading-m3dThe Cesium Man in Model3D format, skeleton view on SPACE
loading-voxFour MagicaVoxel models under a fly camera + voxel lighting
animation-timingThe robot with a playback timeline + adjustable speed
bone-socketA hat, sword and shield riding the greenman's bones
point-renderingUp to 10 million points: GPU point mode vs per-point draws
skybox-renderingA cubemap skybox drawn from inside a unit cube
animation-blendingSPACE cross-fades the robot between two animations
animation-blend-customPer-bone blending: walking legs + attacking upper body
decalsClick to splat logo decals onto a character's surface

shaders: GLSL, uniforms, postprocess, lighting (35)

previewbb nameshows
shapes-textures-shaderA grayscale fragment shader over shapes + a sprite
texture-outlineA shader-drawn outline around a sprite
texture-wavesA space texture rippled by an animated wave shader
julia-setA Julia set fractal computed in a fragment shader
eratosthenes-sieveThe Sieve of Eratosthenes per-pixel in a shader
mandelbrot-setThe Mandelbrot set in a shader, deep-zoom presets
rounded-rectangle-shaderSDF rounded rects (fill/shadow/border) in a shader
raymarchingA raymarched SDF scene with a first-person fly-cam
color-correctionA shader tuning contrast/saturation/brightness
custom-uniformA mouse-steered swirl over a render-textured scene
ascii-renderingA shader re-rendering the scene as ASCII glyphs
postprocessingTwelve full-screen post-process shaders, cycled
texture-renderingA blank texture painted entirely by a fragment shader
multi-sample2dTwo textures blended in a shader via a second sampler2D
palette-switchPalette-indexed bands recolored by a shader uniform
hot-reloadingHot-swap the reload.fs fragment shader while it runs
spotlight-renderingThree spotlights alpha-masked over a sprite swarm
depth-writingInverted gl_FragDepth into a custom depth texture
depth-renderingThe scene's depth buffer visualized through a shader
hybrid-renderingRaymarched spheres + rasterized cubes, depth-tested
texture-tilingA cube model with its texture tiled 3x3 by a shader
model-shaderThe watermill OBJ drawn grayscale by a material shader
basic-lightingA plane + cube lit by four toggleable colored point lights
fog-renderingTorus/cube/sphere models fading into exponential fog
cel-shadingA GLB car toon-shaded with quantized bands + outline
normalmap-renderingA spinning plane lit through a tangent-space normal map
simple-maskAn animated mask eats holes in two models' skin
vertex-displacementA plane mesh riding Perlin-noise waves in the vertex shader
(none)rlgl-computeGame of Life stepped entirely on the GPU by compute shaders
mesh-instancingTen thousand lit cubes in one draw call (DrawMeshInstanced)
lightmap-renderingA plane lit by a baked lightmap through a second UV channel
shadowmap-renderingReal shadows: an animated robot under a shadowmap
basic-pbrThe rusty car under physically-based rendering (PBR maps)
deferred-renderingA three-target G-buffer + deferred lighting pass
game-of-lifeConway's Life on a 2048x2048 world: pan/zoom, presets

audio: sounds, music streams (11)

previewbb nameshows
sound-loadingPlay a WAV and an OGG sound
music-streamStream an MP3 with pan/volume/progress controls
module-playingA chiptune XM module + pulsing circle waves
sound-multiOverlapping sound playback via sound aliases
sound-positioningSpatial audio around an orbiting 3D sphere
raw-streamA sine wave generated sample-by-sample into a stream
mixed-processorA DSP distortion callback on the whole audio mix
stream-effectsStackable lowpass + delay effects on one music stream
stream-callbackA pull-model synth: sine/square/triangle/sawtooth on demand
amp-envelopeAn ADSR envelope on a tone, with a live shape graph
spectrum-visualizerA live FFT spectrum of the music through a shader

others: embedded data, GL interop, standalone rlgl (1)

previewbb nameshows
(none)embedded-filesA logo and a sound compiled into the binary as C arrays

interop: jank/C++ mechanics (1)

Not raylib ports. These demonstrate the language boundary itself, and are counted separately so the raylib port totals above stay comparable with upstream.

bb nameWhat it shows
opaque-boxesNative Colors carried across fns in opaque boxes

Adding an example: the five touchpoints

See porting-workflow.md for the full end-to-end process (source of truth, docstring format, the headless smoke test). The short version is that a new example touches five places in the same commit: raylib-examples/project.clj (a :profiles entry), bb.edn (a bb <name> task), bb/helpers.clj (a row in the examples registry vector, including its :cat), raylib-examples/README.md (move it from the "not yet ported" queue into the ported table), and this file (a row in the right category table, plus its heading count). bb check enforces all five. The repo-root README.md carries no per-example catalog, so it needs no change.

See also

  • porting-workflow.md: the full registration recipe and the headless smoke-test technique this catalog's examples were all verified with.
  • native-value-lifetimes.md: the interop rule every example in this catalog is written against.