Demo gallery

All 213 demos, grouped by category. Each name links to the demo's own sub-project, where its page has the full description and source.

audio (11)

amp-envelope

An ADSR envelope on a tone, with a live shape graph. Controls: hold SPACE play, Q/A W/S E/D R/F params, ESC. Run it with bb amp-envelope.

amp-envelope

mixed-processor

A DSP distortion callback on the whole audio mix. Controls: LEFT/RIGHT distortion, SPACE coin, ESC. Run it with bb mixed-processor.

mixed-processor

module-playing

A chiptune XM module + pulsing circle waves. Controls: SPACE restart · P pause · U/D pitch · Q quit. Run it with bb module-playing.

module-playing

music-stream

Stream an MP3 with pan/volume/progress controls. Controls: SPACE restart · P pause · L/R pan · U/D volume · Q. Run it with bb music-stream.

music-stream

raw-stream

A sine wave generated sample-by-sample into a stream. Controls: UP/DOWN frequency, LEFT/RIGHT pan, ESC. Run it with bb raw-stream.

raw-stream

sound-loading

Play a WAV and an OGG sound. Controls: SPACE wav · ENTER ogg · Q quit. Run it with bb sound-loading.

sound-loading

sound-multi

Overlapping sound playback via sound aliases. Controls: SPACE play (rapid = overlap) · Q quit. Run it with bb sound-multi.

sound-multi

sound-positioning

Spatial audio around an orbiting 3D sphere. Controls: listen! · Q quit. Run it with bb sound-positioning.

sound-positioning

spectrum-visualizer

A live FFT spectrum of the music through a shader. Controls: ESC. Run it with bb spectrum-visualizer.

spectrum-visualizer

stream-callback

A pull-model synth: sine/square/triangle/sawtooth on demand. Controls: LEFT/RIGHT wave, UP/DOWN frequency, ESC. Run it with bb stream-callback.

stream-callback

stream-effects

Stackable lowpass + delay effects on one music stream. Controls: F lowpass, D delay, SPACE restart, P pause, ESC. Run it with bb stream-effects.

stream-effects

core (47)

automation-events

A platformer recording and replaying its own input. Controls: LEFT/RIGHT move, SPACE jump, R reset, S record, A replay, ESC. Run it with bb automation-events.

automation-events

basic-screen-manager

A LOGO/TITLE/GAMEPLAY/ENDING flow. Controls: ENTER advance · Q quit. Run it with bb basic-screen-manager.

basic-screen-manager

basic-window

The minimal raylib window + text. Controls: Q quit. Run it with bb basic-window.

basic-window

camera-2d

A free 2D camera over a skyline. Controls: arrows move · WHEEL zoom · A/S rotate · R reset · Q. Run it with bb camera-2d.

camera-2d

camera-2d-mouse-zoom

Pan + zoom-to-cursor a 2D camera. Controls: 1/2 mode · LEFT drag · WHEEL/RIGHT zoom · Q. Run it with bb camera-2d-mouse-zoom.

camera-2d-mouse-zoom

camera-2d-platformer

A platformer with 5 camera-follow modes. Controls: LEFT/RIGHT move · SPACE jump · WHEEL zoom · C camera · R reset · Q quit. Run it with bb camera-2d-platformer.

camera-2d-platformer

camera-2d-split-screen

Two players, two cameras, split screen. Controls: W/S/A/D player 1 · ARROWS player 2 · Q quit. Run it with bb camera-2d-split-screen.

camera-2d-split-screen

camera-3d

A red cube on a grid through a fixed 3D camera. Controls: watch · Q quit. Run it with bb camera-3d.

camera-3d

camera-3d-first-person

Walk a yard of random columns in first person. Controls: WASD + mouse, 1-4 camera mode, P projection, ESC. Run it with bb camera-3d-first-person.

camera-3d-first-person

camera-3d-fps

A physics FPS controller with head-bob and lean. Controls: WASD move, SPACE jump, Left-Ctrl crouch, mouse look, ESC. Run it with bb camera-3d-fps.

camera-3d-fps

camera-3d-free

A free-look 3D camera around a cube. Controls: mouse look, WHEEL zoom, wheel-press pan, Z retarget, ESC. Run it with bb camera-3d-free.

camera-3d-free

camera-3d-split-screen

Two players, two 3D cameras, split screen. Controls: W/S player 1, UP/DOWN player 2, ESC. Run it with bb camera-3d-split-screen.

camera-3d-split-screen

clipboard-text

Type + cut/copy/paste with the system clipboard. Controls: type, CTRL+X/C/V/R/D, ESC. Run it with bb clipboard-text.

clipboard-text

compute-hash

CRC32/MD5/SHA1/SHA256 + Base64 of typed text. Controls: type, BACKSPACE delete, ENTER compute, ESC. Run it with bb compute-hash.

compute-hash

custom-logging

A trace-log callback timestamps every raylib line. Controls: watch the console, ESC. Run it with bb custom-logging.

custom-logging

delta-time

Delta-time vs per-frame movement. Controls: WHEEL fps · R reset · Q. Run it with bb delta-time.

delta-time

directory-files

A keyboard file browser over the working directory. Controls: UP/DOWN select, ENTER open dir, BACKSPACE up, ESC. Run it with bb directory-files.

directory-files

drop-files

Drag files onto the window to list their paths. Controls: drag & drop files, ESC. Run it with bb drop-files.

drop-files

highdpi-demo

Logical-points vs physical-pixels grids with live DPI scale. Controls: resize window · N next monitor · ESC. Run it with bb highdpi-demo.

highdpi-demo

highdpi-testbed

A HighDPI overlay: grid, monitor/DPI info, crosshair. Controls: SPACE borderless · F fullscreen · ESC. Run it with bb highdpi-testbed.

highdpi-testbed

input-actions

Remappable abstract actions (WASD/arrows) via a keyset map. Controls: WASD/arrows move · SPACE fire · TAB swap keyset · ESC. Run it with bb input-actions.

input-actions

input-gamepad

A live controller diagram: buttons/sticks/triggers lit. Controls: plug in a gamepad, LEFT/RIGHT switch slot, click VIBRATE, ESC. Run it with bb input-gamepad.

input-gamepad

input-gestures

Log detected mouse/touch gestures. Controls: tap/drag/swipe in the area · Q quit. Run it with bb input-gestures.

input-gestures

input-gestures-testbed

A gesture dashboard with log, indicators and protractor. Controls: tap/drag/swipe with the mouse, click Hide buttons, ESC. Run it with bb input-gestures-testbed.

input-gestures-testbed

input-keys

Steer a ball with the arrow keys. Controls: ARROWS · Q quit. Run it with bb input-keys.

input-keys

input-mouse

A ball follows the mouse; click to recolor. Controls: mouse · LEFT/MIDDLE/RIGHT · Q. Run it with bb input-mouse.

input-mouse

input-mouse-wheel

Scroll a box with the mouse wheel. Controls: WHEEL · Q quit. Run it with bb input-mouse-wheel.

input-mouse-wheel

input-multitouch

A ball at every active touch/mouse point. Controls: touch/click · Q quit. Run it with bb input-multitouch.

input-multitouch

input-virtual-controls

An on-screen D-pad moving a player circle. Controls: hold LEFT on a button · Q quit. Run it with bb input-virtual-controls.

input-virtual-controls

keyboard-testbed

An on-screen ENG-US keyboard highlighting held keys. Controls: hold any keys, mouse hover; close window to quit. Run it with bb keyboard-testbed.

keyboard-testbed

monitor-detector

A scaled map of every attached monitor with its specs. Controls: ENTER next monitor · ESC. Run it with bb monitor-detector.

monitor-detector

picking-3d

Click a 3D box to pick it with a world-space ray. Controls: LEFT click box · Q quit. Run it with bb picking-3d.

picking-3d

random-sequence

Colored bars in a no-repeat LoadRandomSequence. Controls: SPACE shuffle, UP/DOWN count, ESC. Run it with bb random-sequence.

random-sequence

random-values

A new random value every two seconds. Controls: Q quit. Run it with bb random-values.

random-values

render-texture

A ball bouncing inside a rotated off-screen render texture. Controls: ESC. Run it with bb render-texture.

render-texture

scissor-test

A scissor rectangle reveals text. Controls: mouse · S toggle · Q quit. Run it with bb scissor-test.

scissor-test

screen-recording

Record the window to an animated GIF. Controls: CTRL+R start/stop, Q. Run it with bb screen-recording.

screen-recording

smooth-pixelperfect

Sub-pixel smoothing of upscaled pixel art. Controls: S smooth · O overscan · Q quit. Run it with bb smooth-pixelperfect.

smooth-pixelperfect

storage-values

Save/load a score pair to a binary storage file. Controls: R random, ENTER save, SPACE load, ESC. Run it with bb storage-values.

storage-values

text-file-loading

Load + word-wrap a text file, scroll it. Controls: mouse wheel scroll, ESC. Run it with bb text-file-loading.

text-file-loading

undo-redo

A grid player with a 26-slot undo/redo ring buffer. Controls: ARROWS move, SPACE color, CTRL+Z/Y undo/redo, ESC. Run it with bb undo-redo.

undo-redo

viewport-scaling

A fixed game resolution scaled into a resizable window. Controls: resize window, click < > buttons, ESC. Run it with bb viewport-scaling.

viewport-scaling

vr-simulator

A 3D scene in stereo through a simulated Oculus Rift. Controls: mouse look (first-person), ESC. Run it with bb vr-simulator.

vr-simulator

window-flags

Toggle window state flags live with a bouncing ball. Controls: F/R/D/H/N/M/U/T/A/V/B toggle flags · ESC. Run it with bb window-flags.

window-flags

window-letterbox

A fixed 640x480 game letterboxed on resize. Controls: resize the window · SPACE recolor · Q quit. Run it with bb window-letterbox.

window-letterbox

window-should-close

Confirm-before-exit on window close. Controls: ESC/X then Y/N · Q. Run it with bb window-should-close.

window-should-close

world-screen

A 2D label tracking a 3D cube (GetWorldToScreen). Controls: watch · Q quit. Run it with bb world-screen.

world-screen

interop (1)

opaque-boxes

Native Colors carried across fns in opaque boxes. Controls: SPACE cycles · Q quit. Run it with bb opaque-boxes.

opaque-boxes

models (29)

animation-blend-custom

Per-bone blending: walking legs + attacking upper body. Controls: SPACE toggle blend mode, ESC. Run it with bb animation-blend-custom.

animation-blend-custom

animation-blending

SPACE cross-fades the robot between two animations. Controls: SPACE blend, LEFT/RIGHT + UP/DOWN anims, Z/X + N/M speeds, P, ESC. Run it with bb animation-blending.

animation-blending

animation-timing

The robot with a playback timeline + adjustable speed. Controls: LEFT/RIGHT anim, UP/DOWN speed, P pause, ESC. Run it with bb animation-timing.

animation-timing

basic-voxel

An 8x8x8 voxel grid; click to ray-pick and remove. Controls: LEFT/RIGHT spin, click remove, R refill, ESC. Run it with bb basic-voxel.

basic-voxel

billboard-rendering

Camera-facing billboards + an orbiting camera. Controls: watch · Q quit. Run it with bb billboard-rendering.

billboard-rendering

bone-socket

A hat, sword and shield riding the greenman's bones. Controls: T/G anim, F/H rotate, 1/2/3 equip, ESC. Run it with bb bone-socket.

bone-socket

box-collisions

A player cube colliding with 3D obstacles. Controls: ARROWS move · Q quit. Run it with bb box-collisions.

box-collisions

cubicmap-rendering

A cube maze generated from a tiny black-and-white image. Controls: P pause orbit, ESC. Run it with bb cubicmap-rendering.

cubicmap-rendering

decals

Click to splat logo decals onto a character's surface. Controls: CLICK splat, RMB-hold camera, H model, C clear, ESC. Run it with bb decals.

decals

directional-billboard

A sprite-sheet billboard that turns as the camera orbits. Controls: ESC. Run it with bb directional-billboard.

directional-billboard

first-person-maze

Walk a cubicmap maze in first person, with a radar. Controls: WASD + mouse look, ESC. Run it with bb first-person-maze.

first-person-maze

geometric-shapes

3D cubes/spheres/cylinders/capsules on a grid. Controls: Q quit. Run it with bb geometric-shapes.

geometric-shapes

heightmap-rendering

Terrain generated from a grayscale heightmap image. Controls: ESC. Run it with bb heightmap-rendering.

heightmap-rendering

loading-gltf

The animated glTF robot, switchable animations. Controls: LEFT/RIGHT animation, ESC. Run it with bb loading-gltf.

loading-gltf

loading-iqm

The classic IQM guy walking on loop. Controls: ESC. Run it with bb loading-iqm.

loading-iqm

loading-m3d

The Cesium Man in Model3D format, skeleton view on SPACE. Controls: LEFT/RIGHT animation, hold SPACE skeleton, ESC. Run it with bb loading-m3d.

loading-m3d

loading-vox

Four MagicaVoxel models under a fly camera + voxel lighting. Controls: CLICK cycle, WASD/ARROWS move, MIDDLE-drag rotate, WHEEL zoom, ESC. Run it with bb loading-vox.

loading-vox

mesh-generation

All nine procedural mesh generators, checked-textured. Controls: CLICK or LEFT/RIGHT cycle, ESC. Run it with bb mesh-generation.

mesh-generation

mesh-picking

A mouse ray picks the closest quad/sphere/box/mesh. Controls: mouse aim, RIGHT CLICK camera, ESC. Run it with bb mesh-picking.

mesh-picking

model-loading

The castle OBJ model loaded from disk, ray-pick selection. Controls: LEFT CLICK select, ESC. Run it with bb model-loading.

model-loading

orthographic-projection

Toggle perspective vs orthographic camera. Controls: SPACE toggle · Q quit. Run it with bb orthographic-projection.

orthographic-projection

point-rendering

Up to 10 million points: GPU point mode vs per-point draws. Controls: UP/DOWN count, SPACE method, ESC. Run it with bb point-rendering.

point-rendering

rlgl-solar-system

Sun/Earth/Moon via the rlgl matrix stack. Controls: watch · Q quit. Run it with bb rlgl-solar-system.

rlgl-solar-system

rotating-cube

A textured cube spinning on a tilted axis (rlgl). Controls: ESC. Run it with bb rotating-cube.

rotating-cube

skybox-rendering

A cubemap skybox drawn from inside a unit cube. Controls: WASD + mouse look, ESC. Run it with bb skybox-rendering.

skybox-rendering

tesseract-view

A rotating 4D hypercube projected to 3D. Controls: watch · Q quit. Run it with bb tesseract-view.

tesseract-view

textured-cube

Two rlgl textured 3D cubes from a shared atlas. Controls: ESC. Run it with bb textured-cube.

textured-cube

waving-cubes

3375 rainbow cubes waving in 3D. Controls: watch · Q quit. Run it with bb waving-cubes.

waving-cubes

yaw-pitch-roll

Fly a WWI plane through pitch/yaw/roll, easing level. Controls: UP/DOWN pitch, LEFT/RIGHT roll, A/S yaw, ESC. Run it with bb yaw-pitch-roll.

yaw-pitch-roll

others (1)

embedded-files

A logo and a sound compiled into the binary as C arrays. Controls: SPACE plays the sound, Q. Run it with bb embedded-files.

embedded-files

shaders (35)

ascii-rendering

A shader re-rendering the scene as ASCII glyphs. Controls: LEFT/RIGHT cell size, ESC. Run it with bb ascii-rendering.

ascii-rendering

basic-lighting

A plane + cube lit by four toggleable colored point lights. Controls: Y/R/G/B toggle lights, ESC. Run it with bb basic-lighting.

basic-lighting

basic-pbr

The rusty car under physically-based rendering (PBR maps). Controls: 1-4 toggle lights, ESC. Run it with bb basic-pbr.

basic-pbr

cel-shading

A GLB car toon-shaded with quantized bands + outline. Controls: Z cel, C outline, Q/E bands, ESC. Run it with bb cel-shading.

cel-shading

color-correction

A shader tuning contrast/saturation/brightness. Controls: 1-4 picture, Q/W A/S Z/X sliders, R reset, ESC. Run it with bb color-correction.

color-correction

custom-uniform

A mouse-steered swirl over a render-textured scene. Controls: move the mouse, ESC. Run it with bb custom-uniform.

custom-uniform

deferred-rendering

A three-target G-buffer + deferred lighting pass. Controls: Y/R/G/B lights, 1-4 views, ESC. Run it with bb deferred-rendering.

deferred-rendering

depth-rendering

The scene's depth buffer visualized through a shader. Controls: WASD + mouse look, Z retarget, ESC. Run it with bb depth-rendering.

depth-rendering

depth-writing

Inverted gl_FragDepth into a custom depth texture. Controls: ESC. Run it with bb depth-writing.

depth-writing

eratosthenes-sieve

The Sieve of Eratosthenes per-pixel in a shader. Controls: ESC. Run it with bb eratosthenes-sieve.

eratosthenes-sieve

fog-rendering

Torus/cube/sphere models fading into exponential fog. Controls: UP/DOWN fog density, ESC. Run it with bb fog-rendering.

fog-rendering

game-of-life

Conway's Life on a 2048x2048 world: pan/zoom, presets. Controls: 1-9/0 presets, R/P/D mode, Z/X zoom, F/S speed, drag pan, ESC. Run it with bb game-of-life.

game-of-life

hot-reloading

Hot-swap the reload.fs fragment shader while it runs. Controls: A auto-reload, CLICK reload once, ESC. Run it with bb hot-reloading.

hot-reloading

hybrid-rendering

Raymarched spheres + rasterized cubes, depth-tested. Controls: ESC. Run it with bb hybrid-rendering.

hybrid-rendering

julia-set

A Julia set fractal computed in a fragment shader. Controls: mouse zoom/drift, 1-6 presets, LEFT/RIGHT speed, SPACE, R, F1, ESC. Run it with bb julia-set.

julia-set

lightmap-rendering

A plane lit by a baked lightmap through a second UV channel. Controls: ESC. Run it with bb lightmap-rendering.

lightmap-rendering

mandelbrot-set

The Mandelbrot set in a shader, deep-zoom presets. Controls: mouse zoom/drift, 1-6 presets, UP/DOWN iterations, R, F1, ESC. Run it with bb mandelbrot-set.

mandelbrot-set

mesh-instancing

Ten thousand lit cubes in one draw call (DrawMeshInstanced). Controls: ESC. Run it with bb mesh-instancing.

mesh-instancing

model-shader

The watermill OBJ drawn grayscale by a material shader. Controls: WASD + mouse look, ESC. Run it with bb model-shader.

model-shader

multi-sample2d

Two textures blended in a shader via a second sampler2D. Controls: LEFT/RIGHT divider, ESC. Run it with bb multi-sample2d.

multi-sample2d

normalmap-rendering

A spinning plane lit through a tangent-space normal map. Controls: N toggle, WASD light, UP/DOWN shininess, ESC. Run it with bb normalmap-rendering.

normalmap-rendering

palette-switch

Palette-indexed bands recolored by a shader uniform. Controls: LEFT/RIGHT palette, ESC. Run it with bb palette-switch.

palette-switch

postprocessing

Twelve full-screen post-process shaders, cycled. Controls: LEFT/RIGHT cycle effect, ESC. Run it with bb postprocessing.

postprocessing

raymarching

A raymarched SDF scene with a first-person fly-cam. Controls: WASD move, mouse look, Q/E down/up, ESC. Run it with bb raymarching.

raymarching

rlgl-compute

Game of Life stepped entirely on the GPU by compute shaders. Controls: LEFT draw, RIGHT erase, WHEEL brush, ESC. Run it with bb rlgl-compute.

rounded-rectangle-shader

SDF rounded rects (fill/shadow/border) in a shader. Controls: Q/ESC quit. Run it with bb rounded-rectangle-shader.

rounded-rectangle-shader

shadowmap-rendering

Real shadows: an animated robot under a shadowmap. Controls: ARROWS light, F screenshot, ESC. Run it with bb shadowmap-rendering.

shadowmap-rendering

shapes-textures-shader

A grayscale fragment shader over shapes + a sprite. Controls: ESC. Run it with bb shapes-textures-shader.

shapes-textures-shader

simple-mask

An animated mask eats holes in two models' skin. Controls: WASD + mouse look, ESC. Run it with bb simple-mask.

simple-mask

spotlight-rendering

Three spotlights alpha-masked over a sprite swarm. Controls: move the mouse, ESC. Run it with bb spotlight-rendering.

spotlight-rendering

texture-outline

A shader-drawn outline around a sprite. Controls: mouse wheel outline size, ESC. Run it with bb texture-outline.

texture-outline

texture-rendering

A blank texture painted entirely by a fragment shader. Controls: ESC. Run it with bb texture-rendering.

texture-rendering

texture-tiling

A cube model with its texture tiled 3x3 by a shader. Controls: WASD + mouse look, Z retarget, ESC. Run it with bb texture-tiling.

texture-tiling

texture-waves

A space texture rippled by an animated wave shader. Controls: ESC. Run it with bb texture-waves.

texture-waves

vertex-displacement

A plane mesh riding Perlin-noise waves in the vertex shader. Controls: WASD + mouse look, ESC. Run it with bb vertex-displacement.

vertex-displacement

shapes (41)

ball-physics

Grab and throw balls under gravity. Controls: drag · RIGHT spawn · WHEEL gravity · MIDDLE shake · Q. Run it with bb ball-physics.

ball-physics

basic-shapes

A gallery of raylib's basic shapes. Controls: Q quit. Run it with bb basic-shapes.

basic-shapes

bouncing-ball

A ball bouncing with optional gravity. Controls: SPACE pause · G gravity · Q quit. Run it with bb bouncing-ball.

bouncing-ball

bullet-hell

A magic circle spraying bullet spirals. Controls: L/R rows · U/D speed · Z/X cooldown · SPACE angle · ENTER method · C clear · Q. Run it with bb bullet-hell.

bullet-hell

circle-sector-drawing

A circle sector with adjustable angles. Controls: L/R + U/D angles · A/S radius · O/P segments · Q quit. Run it with bb circle-sector-drawing.

circle-sector-drawing

clock-of-clocks

Digits drawn from grids of little clocks. Controls: SPACE 12/24h · Q quit. Run it with bb clock-of-clocks.

clock-of-clocks

collision-area

AABB collision between a bouncing + mouse box. Controls: mouse · SPACE pause · Q. Run it with bb collision-area.

collision-area

colors-palette

Every named raylib color in a grid. Controls: mouse hover · SPACE all names · Q. Run it with bb colors-palette.

colors-palette

dashed-line

A dashed line follows the mouse. Controls: ARROWS size · C color · Q quit. Run it with bb dashed-line.

dashed-line

digital-clock

A live clock (digital + analogue modes). Controls: SPACE mode · Q quit. Run it with bb digital-clock.

digital-clock

double-pendulum

Chaotic double-pendulum motion + trail. Controls: Q quit. Run it with bb double-pendulum.

double-pendulum

easings-ball

A ball animated through easing stages. Controls: ENTER replay · R restart · Q quit. Run it with bb easings-ball.

easings-ball

easings-box

A box animated through five easing stages. Controls: SPACE reset · Q quit. Run it with bb easings-box.

easings-box

easings-rectangles

A grid shrinks and spins via easing fns. Controls: SPACE replay · Q quit. Run it with bb easings-rectangles.

easings-rectangles

easings-testbed

An interactive testbed for all 28 easings. Controls: ENTER play/pause · SPACE restart · L/R x-ease · U/D y-ease · Q/W A/S duration · T bounded · ESC quit. Run it with bb easings-testbed.

easings-testbed

ellipse-collision

Overlap test between two ellipses. Controls: mouse · A/B switch · Q quit. Run it with bb ellipse-collision.

ellipse-collision

following-eyes

Two eyes track the mouse cursor. Controls: move the mouse · Q quit. Run it with bb following-eyes.

following-eyes

hilbert-curve

A rainbow Hilbert space-filling curve. Controls: Z/X order · U/D size · L/R thickness · A animate · R redraw · Q. Run it with bb hilbert-curve.

hilbert-curve

kaleidoscope

Draw strokes mirrored with 6-fold symmetry. Controls: LEFT mouse draw · L/R history · R reset · Q quit. Run it with bb kaleidoscope.

kaleidoscope

lines-bezier

Drag endpoints to reshape a Bezier curve. Controls: drag endpoints · Q quit. Run it with bb lines-bezier.

lines-bezier

lines-drawing

A paint canvas (RenderTexture). Controls: LEFT paint · RIGHT erase · MIDDLE clear · WHEEL size · Q. Run it with bb lines-drawing.

lines-drawing

logo-anim

The raylib logo assembling itself. Controls: R replay · Q quit. Run it with bb logo-anim.

logo-anim

logo-raylib

The raylib logo from rectangles + text. Controls: Q quit. Run it with bb logo-raylib.

logo-raylib

math-angle-rotation

Fixed-angle lines + a spinning line. Controls: Q quit. Run it with bb math-angle-rotation.

math-angle-rotation

math-sine-cosine

A live unit-circle trig visualization. Controls: SPACE pause · L/R scrub angle · Q quit. Run it with bb math-sine-cosine.

math-sine-cosine

mouse-trail

A fading trail follows the cursor. Controls: move the mouse · Q quit. Run it with bb mouse-trail.

mouse-trail

particles

Water / smoke / fire particle effects. Controls: mouse · LEFT/RIGHT type · Q. Run it with bb particles.

particles

penrose-tile

A Penrose tiling grown with an L-system. Controls: UP/DOWN generations · Q quit. Run it with bb penrose-tile.

penrose-tile

pie-chart

An interactive pie chart with hover pop. Controls: hover · Z/X slices · N/M select · L/R value · V/P/D toggles · A/S hole · Q. Run it with bb pie-chart.

pie-chart

rectangle-advanced

Rounded gradient rectangles via rlgl. Controls: Q quit. Run it with bb rectangle-advanced.

rectangle-advanced

rectangle-scaling

Resize a rectangle by its corner. Controls: drag corner · Q quit. Run it with bb rectangle-scaling.

rectangle-scaling

recursive-tree

A binary fractal tree with live knobs. Controls: L/R angle · U/D length · A/S decay · Z/X depth · T/Y thick · B bezier · Q. Run it with bb recursive-tree.

recursive-tree

ring-drawing

A ring/annulus with adjustable angles. Controls: L/R + U/D angles · A/S Z/X radii · O/P segments · R/L/C toggles · Q. Run it with bb ring-drawing.

ring-drawing

rlgl-color-wheel

An HSV color picker wheel via rlgl. Controls: click/drag pick · WHEEL count · U/D size · A/S value · SPACE wires · CTRL+C · Q. Run it with bb rlgl-color-wheel.

rlgl-color-wheel

rlgl-triangle

A rainbow triangle via rlgl immediate mode. Controls: drag corners · SPACE lines · L/R culling · R reset · Q. Run it with bb rlgl-triangle.

rlgl-triangle

rounded-rectangle

A rounded rectangle, size/roundness knobs. Controls: A/S Z/X size · L/R roundness · U/D thickness · O/P segments · R/L/G · Q. Run it with bb rounded-rectangle.

rounded-rectangle

splines-drawing

Draggable spline points, 4 spline types. Controls: 1-4 type · LEFT drag · RIGHT add · A/S thickness · H helpers · Q. Run it with bb splines-drawing.

splines-drawing

starfield

A perspective starfield flying at you. Controls: MOUSE WHEEL · SPACE mode · Q. Run it with bb starfield.

starfield

top-down-lights

2D lights casting shadow volumes off boxes. Controls: drag light 1 · RIGHT add light · L debug view · Q quit. Run it with bb top-down-lights.

top-down-lights

triangle-strip

A rainbow triangle-strip fan. Controls: L/R segments · O outline · Q quit. Run it with bb triangle-strip.

triangle-strip

vector-angle

Two ways to measure an angle. Controls: mouse · SPACE mode · RIGHT move · Q. Run it with bb vector-angle.

vector-angle

text (16)

codepoints-loading

Japanese text rasterized to a minimal TTF font atlas. Controls: SPACE toggle atlas view, ESC. Run it with bb codepoints-loading.

codepoints-loading

font-filters

Scale a TTF word, switch texture filters. Controls: WHEEL size · 1/2/3 filter · L/R move · Q. Run it with bb font-filters.

font-filters

font-loading

Load a BMFont and a TTF font (DrawTextEx). Controls: SPACE = TTF · Q quit. Run it with bb font-loading.

font-loading

font-sdf

Bitmap vs SDF font scaling, the SDF drawn through a shader. Controls: MOUSE WHEEL scale, hold SPACE for SDF, ESC. Run it with bb font-sdf.

font-sdf

font-spritefont

Three colored sprite fonts from PNG atlases. Controls: watch · Q quit. Run it with bb font-spritefont.

font-spritefont

format-text

Zero-padded score/time text readouts. Controls: Q quit. Run it with bb format-text.

format-text

inline-styling

Text with inline color style tags. Controls: watch the colors re-roll, ESC. Run it with bb inline-styling.

inline-styling

input-box

A hover-to-type text input box. Controls: hover + type · BACKSPACE delete · Q (outside box) quit. Run it with bb input-box.

input-box

rectangle-bounds

Word-wrapped text in a mouse-resizable container. Controls: drag corner to resize, SPACE toggle wrap, ESC. Run it with bb rectangle-bounds.

rectangle-bounds

sprite-fonts

A gallery of raylib's eight bundled sprite fonts. Controls: watch · Q quit. Run it with bb sprite-fonts.

sprite-fonts

strings-management

Drag/slice/shatter/glue text; 1-6 run TextTo* fns. Controls: L-mouse grab/throw, R-mouse slice (+Shift shatter), M-mouse shake, L-Ctrl glue, 1-6 reset, ESC. Run it with bb strings-management.

strings-management

text-3d-drawing

A bitmap font as textured quads in 3D, one span waving. Controls: F1/F2 boundaries, F3 camera, arrows size/spacing, Home/End layers, Tab multicolor, click cube, ESC. Run it with bb text-3d-drawing.

text-3d-drawing

unicode-emojis

Click emojis for multilingual speech bubbles. Controls: hover + click emojis, SPACE re-roll, ESC. Run it with bb unicode-emojis.

unicode-emojis

unicode-ranges

Grow a multilingual font atlas by unicode range. Controls: 0-4 select range set, ESC. Run it with bb unicode-ranges.

unicode-ranges

words-alignment

Align a word inside a rectangle. Controls: L/R h-align · U/D v-align · Q quit. Run it with bb words-alignment.

words-alignment

writing-anim

A message types itself out. Controls: SPACE speed up · ENTER restart · Q quit. Run it with bb writing-anim.

writing-anim

textures (32)

background-scrolling

Parallax-scrolling cyberpunk street layers. Controls: Q quit. Run it with bb background-scrolling.

background-scrolling

blend-modes

Four 2D blend modes over the cyberpunk street. Controls: SPACE mode · Q quit. Run it with bb blend-modes.

blend-modes

bunnymark

The classic bunny-spawning batching benchmark. Controls: LEFT spawn · P pause · Q quit. Run it with bb bunnymark.

bunnymark

cellular-automata

Wolfram rule cellular automaton, editable rule. Controls: click rule bits / presets · Q quit. Run it with bb cellular-automata.

cellular-automata

clipboard-image

Paste images from the system clipboard. Controls: CTRL+V paste, R reset, Q. Run it with bb clipboard-image.

clipboard-image

fog-of-war

A tile map hidden by smooth fog of war. Controls: ARROWS move · Q quit. Run it with bb fog-of-war.

fog-of-war

framebuffer-rendering

An observer camera watching a subject camera + frustum. Controls: WASD + mouse observer, R retarget, ESC. Run it with bb framebuffer-rendering.

framebuffer-rendering

gif-player

An animated GIF streamed frame-by-frame to a texture. Controls: RIGHT/LEFT change speed · Q. Run it with bb gif-player.

gif-player

image-channel

RGBA channels split + alpha-masked. Controls: watch · Q quit. Run it with bb image-channel.

image-channel

image-drawing

One texture composed from several CPU images. Controls: watch · Q quit. Run it with bb image-drawing.

image-drawing

image-generation

Nine procedural textures (gradients/noise). Controls: LEFT mouse / RIGHT arrow cycle · Q quit. Run it with bb image-generation.

image-generation

image-kernel

Sharpen/sobel/gaussian convolution kernels. Controls: watch · Q quit. Run it with bb image-kernel.

image-kernel

image-loading

LoadImage (RAM) then LoadTextureFromImage (VRAM). Controls: Q quit. Run it with bb image-loading.

image-loading

image-processing

Nine CPU image filters via pointer-taking Image* APIs. Controls: click / UP / DOWN · Q quit. Run it with bb image-processing.

image-processing

image-rotate

The logo rotated +45/+90/-90 in CPU memory. Controls: LEFT click / RIGHT cycle · Q quit. Run it with bb image-rotate.

image-rotate

image-text

Text baked into an image with a TTF font. Controls: SPACE = atlas · Q quit. Run it with bb image-text.

image-text

logo-texture

The raylib logo loaded from a PNG file. Controls: Q quit. Run it with bb logo-texture.

logo-texture

magnifying-glass

A circular magnifier revealing hidden bunnies. Controls: move mouse · Q quit. Run it with bb magnifying-glass.

magnifying-glass

mouse-painting

A paint program on a RenderTexture canvas. Controls: LEFT paint · RIGHT erase · WHEEL brush · C clear · S save · Q. Run it with bb mouse-painting.

mouse-painting

npatch-drawing

Stretchable 9-patch / 3-patch UI panels. Controls: move mouse · Q quit. Run it with bb npatch-drawing.

npatch-drawing

particles-blending

Spark particles trail the mouse (alpha/additive). Controls: SPACE blending · Q quit. Run it with bb particles-blending.

particles-blending

polygon-drawing

A cat texture mapped onto a spinning polygon. Controls: watch · Q quit. Run it with bb polygon-drawing.

polygon-drawing

raw-data

A .raw pixel dump + a code-generated checkerboard. Controls: watch · Q quit. Run it with bb raw-data.

raw-data

screen-buffer

The classic DOS fire effect in a palette-indexed buffer. Controls: ESC. Run it with bb screen-buffer.

screen-buffer

sprite-animation

Scarfy runs: 6-frame spritesheet animation. Controls: L/R animation speed · Q quit. Run it with bb sprite-animation.

sprite-animation

sprite-button

A 3-state sprite button with a click sound. Controls: click the button · Q quit. Run it with bb sprite-button.

sprite-button

sprite-explosion

Click to play a 5x5 explosion spritesheet + sound. Controls: LEFT click · Q quit. Run it with bb sprite-explosion.

sprite-explosion

sprite-stacking

A voxel booth from 122 stacked rotated slices. Controls: A/D spin · WHEEL separation · Q quit. Run it with bb sprite-stacking.

sprite-stacking

srcrec-dstrec

Rotate + scale a sprite frame (DrawTexturePro). Controls: Q quit. Run it with bb srcrec-dstrec.

srcrec-dstrec

textured-curve

A road texture swept along a draggable Bezier. Controls: drag points · SPACE curve · +/- width · L/R segments · Q. Run it with bb textured-curve.

textured-curve

tiled-drawing

Tile a texture pattern with scale/rotation/color. Controls: click pattern/color · UP/DOWN scale · L/R rotation · SPACE reset · Q. Run it with bb tiled-drawing.

tiled-drawing

to-image

Round-trip an image VRAM<->RAM (LoadImageFromTexture). Controls: watch · Q quit. Run it with bb to-image.

to-image