Butterfly is an interactive 3D story world where a deterministic engine verifies ways to keep a chosen moment after conditions change. It allows users to explore a city as an interface, where a deterministic TypeScript engine dictates events. The diorama, timeline, MomentFrame, and causal inspector all present the simulation's results.
Interactive 3D Story World: Explore a dynamic 3D environment where changes in conditions lead to different outcomes.
Deterministic Engine: A core engine ensures predictable and verifiable simulation results.
Causal Inspector: Understand the cause-and-effect relationships within the simulation.
MomentFrame: Preserve specific moments and explore alternative scenarios to achieve them.
Time-Aware Routes: Features explicit endpoints, transport modes, durations, and availability windows for routes.
Local Development: Run the application locally with Node.js, using a local sample without requiring API keys or network connections for the core journey.
Sanity Integration: Integrates with Sanity for content management, allowing for live content updates and authoring.
Testing Frameworks: Includes Playwright for end-to-end browser testing and Vitest for unit testing.
The project is built with modern web technologies including React, Next.js, and Three.js, providing a rich visual and interactive experience. It emphasizes a clear separation of concerns with distinct modules for the app, world, engine, scene, UI, and Sanity integration.
Built with