SHADERLAND::SWIZZLE'S JOURNEY
POST-PARTY VERSION
originally released: Revision 2026, PC Demo compo (12th place)

This rerelease adds:
- fixed resolution scaling
- playback timeline (pause and explore the node graphs!)
- improved lighting
- perspective on nodes
- explicit keyboard controls

---

canmom - code, animation, modelling and tooling
pumpuli - music

This demo is built around 'Shaderland', a work in progress shader programming puzzle game inspired by Line Rider and Zachtronics games. The game's been in development for about seven or eight months; it is my job but I am the only dev on the game. I took the game systems (automaton, node editor) and built an animation tool on top of it, so the nodes and parameters can be animated on a timeline. (Lots of cardinal splines and BTreeMaps.)

Tooling takes a lot of time, it turns out! The actual animation was completed in the days leading up to Revision and a late night partycoding session.

Swizzle is controlled by a cellular automaton, similar to how Lemmings works. The node graph generates both WGSL code which is compiled with wgpu, and an array of CPU instructions for evaluating the automaton on the CPU. Once the path through the world is determined by the automaton, the animation system interpolates swizzle's legs and other body parts procedurally. When the program is launched, Swizzle's entire path is simulated for the whole demo; this allows scrubbing and pausing easily (but it does mean that any time I make a change to a parameter, it must resimulate from the start.)

The other swizzles use identical automata, but with different thresholds set for the line between 'ground' and 'air' pixels.

If you like the ideas here and think it might be fun to play around with this tool, or especially if this makes you want to learn more about shader programming, the game can be wishlisted on Steam: https://store.steampowered.com/app/4487340/Shaderland/

Tools used:
languages: Rust, WGSL
wgpu - https://wgpu.rs/ (GPU abstraction layer)
Iced - https://iced.rs/ (UI library)
Blender - https://www.blender.org/ (node and swizzle models)
Renoise - https://www.renoise.com/ (music)

Fonts used:
Inconsolata - https://fonts.google.com/specimen/Inconsolata (Open Font License)
Major Mono - https://fonts.google.com/specimen/Major+Mono+Display (Open Font License)

Mac and web builds may be possible but this release only targets Windows and Linux! Should run on a potato, as long as that potato has Vulkan.
