Séance is a talking-board game. You ask questions and the glass slides under your hand to spell the answers. Every answer opens up new questions, and the board starts communicating with you: the candles dip when it pushes back, the flames burn blue and many other effects for you to discover.
The idea is quite straightforward, and let’s say I borrowed it from a certain well-known creepy board game used to communicate with spirits. I tried to add lots of little details and flair to make it visually interesting. The candles flicker and their light plays on the pointer, and the sounds and atmosphere are finely tuned. I hope you enjoy it.
Built with the Rive CLI and GPU Canvas. The scene is RML and Luau, written with a coding agent and built, previewed and tested from the terminal. Two WGSL shaders handle the candlelight, smoke, heat haze and frost, and the lens that magnifies the letter under the glass. Scripting, data binding and a state machine run the board, the questions and the controls. The story was carefully directed. In the end i even had to upgrade to RIve Cadet status to publish the 4 entries to this competition!
🎃 Can you beat Jack at darts? 🎯
🎮 Play here: START
This is my second game for the challenge, and honestly it was a totally different experience from the first one.
Last time I built everything by hand. This time I wanted to try the Rive CLI with Claude, and wow… I just described what I wanted in the terminal, and step by step a whole 3D darts game appeared. Jack, the dartboard, the castle room, all made with GPU Canvas shaders, no 3D models at all.
But not everything went smoothly 😅 AI really struggles to draw nice SVG icons and cards, so I opened the project in the Rive Editor and redesigned the cards, their icons and the button animations myself.
🎯 How to play
You play 5 rounds against Jack, a pumpkin-headed gentleman who really doesn't like losing.
Pull back to aim, release, and stop the meter in the green zone for a perfect throw.
Before every throw you pick one of 3 mystery Halloween cards 🃏 Some help you (Bat Swarm, Witch's Brew…), some are curses (Tombstone 😈). And yes, Jack gets cards too.
This was my first project like this and I enjoyed every minute of it. I still can't believe how easy it was to make a 3D game this way, and I already have ideas for the next ones 👀
DEAD STILL is a Victorian spirit-photography game in three sittings. Ghosts can’t be seen. Only photographed.
You are J. Ashworth, “Photographer of the Departed”. Frame your clients, turn the brass focus ring, and hold a long exposure while the plate drinks the light. Then rock the plate in a red-lit darkroom and watch who was really standing beside them:
- The widow: her husband, in his empty armchair. The first sitting teaches you, step by step.
- The twins: a dead girl who will not keep still. Frost on the glass betrays her, and only a magnesium flash can freeze her.
- Mr. Hale: an investigator who asks for a portrait “with whoever is here”. Then the print looks back at you.
Rive features used:
1) Rive CLI: the whole project is RML, Luau and WGSL, checked with --verify, inspect, --screenshot and --test (20 unit tests that guard the rules), and shipped with --publish=web.
2) GPU Canvas: the shaders are the mechanics:
- 2D Rive artboards lit inside a 3D studio, with shadows and depth of field
- long exposure as real accumulation into a float plate: anything that moves smears
- a development shader you agitate by hand, with the dead coming up last
- frost on the ground glass where a spirit stands, and candle flames that bend toward the cold
- a magnesium flash, then smoke
- for the twist, a "living print": the plate re-exposed every frame, so a face in the photograph can open its eyes
3) Scripting (Luau): the sittings, the scoring and the story; it scrubs Ashworth's Wake timeline to open his eyes.
4) Data Binding: one view model drives the whole HUD.
5) State machines on every artboard; the HUD's hints run on one.
6) Skinned image meshes with bones for every character, each with an idle timeline.
7) Layout, vector feathering, trim paths, dash paths and Rive audio (gapless loops for the clock, the candles and the darkroom).
The video shows the game itself (every gameplay frame rendered by the game), the CLI run that shipped it, its RML, Luau and WGSL, the GPU Canvas passes, the file opened in the Rive Editor, and the same signed .riv running in a local build of my own portfolio site.
Katy Sander and I joined forces to trap a demon and bind it to the Mac notch. He wasn’t happy about it. But he’s just as helpful as the other agents, and a lot funnier.
Meet Notchling. Hand-drawn, then vectorized and rigged in Rive. All animations, state machines, and timelines were built using the CLI, along with the ElevenLabs and Claude integrations that bring him to life in the final Swift package.