Cade Runtime
Heads up: Cade is in an early stage of development. Features, configuration syntax, and APIs may change as the project evolves, and the binary is distributed on an invite basis while things stabilize. Feedback and experiments are very welcome — just expect some rough edges.
Cade (short for Cascade) is a declarative runtime for building and operating pinball machines. Describe your table once in a concise HCL configuration and Cade handles the rest — driving hardware, routing events, keeping score, playing audio, and giving you a live debugging console to see everything as it happens.
Whether you are bringing up a brand-new whitewood, converting a Visual Pinball X table, or iterating on game rules for a production machine, Cade is designed to let you spend your time on game design instead of plumbing.
Why Cade
- Declarative from end to end. Devices, events, variables, and scoring rules are all described as configuration. No scripting, no event glue code — just say what the machine is and what should happen.
- Real-time performance. The event pipeline runs at 50–100 Hz with parallel execution, and the scoring engine resolves rules in well under a millisecond so flipper and coil timing stay tight.
- Hardware-agnostic. Cade speaks to FAST Pinball controllers, Visual Pinball X over a gRPC bridge, and a built-in virtual driver for testing without hardware. Swap drivers without rewriting your table.
- Composable configuration. Fragments and assemblies let you factor out repeated patterns — flipper wiring, pop bumper scoring, mode scaffolds — and reuse them across tables.
- Built-in observability. A rich TUI console evaluates expressions, triggers events, inspects variables, and traces event cascades live. An optional web dashboard exposes health and debug endpoints for remote monitoring.
- Safe by construction. Configuration is validated up front with comprehensive checks for missing references, type mismatches, circular dependencies, and reserved-keyword misuse. Pragmas let you dial validation strictness to match your workflow.
Who It’s For
- Table designers who want to iterate on rules, scoring, and audio without rebuilding a codebase every time.
- Hardware integrators bringing up new playfields who need a consistent way to declare devices and wire them to behaviors.
- VPX authors moving beyond VBScript toward a portable, declarative definition that runs on real hardware too.
- Tinkerers and home-brew builders who want professional-grade event routing, scoring, and audio without writing it from scratch.
Get Started
- Getting Started — Install Cade, write your first table, and explore it in the console.
- Table Configuration — The full reference for
.cadefiles: devices, events, variables, scoring, fragments, and assemblies. - Runtime Configuration — Platform drivers, web server, logging, and analytics settings.
- Console — Tour the interactive TUI used to debug live games.
- Drivers — Guides for FAST, Visual Pinball, and the virtual driver.
Sections
- Documentation — Guides, architecture, and configuration
- API Reference — Configuration reference