The example catalog — 209 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 (46)

previewbb nameshows
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
input-gesturesLog detected mouse/touch gestures
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
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
highdpi-testbedA HighDPI diagnostic overlay: grid, monitor/DPI info, crosshair
random-sequenceColored bars in a random no-repeat permutation (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 custom trace-log callback timestamps + tags every raylib log 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, lean and strafe-accel
vr-simulatorA 3D scene in stereo through a simulated Oculus Rift + lens-distortion shader
automation-eventsA 2D platformer with input record/replay via AutomationEventList
input-gamepadA live controller diagram: buttons/sticks/triggers light up (Xbox/PS/generic)

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 drawn as textured quads in 3D, waving the ~~World~~-marked span
strings-managementDrag/slice/shatter/glue text particles; 1-6 run raylib's TextTo* fns
font-sdfBitmap vs SDF font scaling, the SDF drawn through a shader

textures — images, sprites, render textures (31)

previewbb nameshows
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
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 beige voxel grid; click to ray-pick and remove cubes
rotating-cubeA textured cube spinning on a tilted axis (rlgl matrix stack)
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 the cubicmap maze in first person, wall collision + radar
loading-gltfThe animated glTF robot, switchable animations
yaw-pitch-rollFly a WWI plane through pitch/yaw/roll, easing back to level
mesh-pickingA mouse ray picks the closest quad/triangle/sphere/box/mesh hit
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 skeleton 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 clipped 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 rectangles (fill/shadow/border) in a fragment shader
raymarchingA raymarched SDF scene in a fragment shader, first-person fly-cam
color-correctionA post-process shader tuning contrast/saturation/brightness of a picture
custom-uniformA mouse-steered swirl post-process over a render-textured 3D scene
ascii-renderingA post-process shader re-rendering the scene as ASCII glyphs
postprocessingTwelve full-screen post-process shaders cycled over a 3D scene
texture-renderingA blank texture painted and animated entirely by a fragment shader
multi-sample2dTwo textures blended in a shader via a second sampler2D
palette-switchPalette-indexed bands recolored by an ivec3-array shader uniform
hot-reloadingHot-swap the reload.fs fragment shader while it runs
spotlight-renderingThree spotlights alpha-masked over a star field + sprite swarm
depth-writingInverted gl_FragDepth into a custom depth-texture framebuffer
depth-renderingThe scene's depth buffer visualized through a shader
hybrid-renderingRaymarched spheres + rasterized cubes in one depth-tested scene
texture-tilingA generated cube model with its texture tiled 3x3 by a shader
model-shaderThe watermill OBJ drawn grayscale via a material-bound 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 texture eats holes in two models' plasma skin
vertex-displacementA plane mesh riding Perlin-noise waves in the vertex shader
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 the shadowmapping algorithm
basic-pbrThe rusty car under physically-based rendering (PBR maps)
deferred-renderingA three-target G-buffer + full-screen deferred lighting pass
game-of-lifeConway's Life on a 2048x2048 world: pan/zoom, presets, draw mode

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 raw audio 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 amplitude envelope on a tone, with a live shape graph
spectrum-visualizerA live FFT spectrum of the music through a shader

Adding an example — the four touchpoints

See porting-workflow.md for the full end-to-end process (source of truth, docstring format, the headless smoke test). The short version: a new example touches four 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), and raylib-examples/README.md (move it from the "not yet ported" queue into the ported table). 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.