The abominal little engine that probably shouldn't. Build stuff using Markdown with executable JS code blocks. Fast prototyping on the web with easy export to native with Tauri.
Check it out: Intro
Demos:
Core examples:
- stfxr.md | Source
- asciiart.md | Source
- magic-shader.md | Source
- magic-compress.md | Source
- lyrics.md | Source
- hexview.md | Source
- tui-basic.md | Source
- gui-basic.md | Source
The engine is built around GitHub features. No installation needed. Just create a new repo from the S|torie template, update index.md with your own content and it'll auto-compile for the web. Enable GitHub Pages and you'll see that content served live within moments. GitHub Actions take care of the full compilation process.
Storie's long-term direction is scripting-first development with a native compilation path that can eventually target a Storie-oriented operating system.
The current roadmap is documented in COMPILATION_ROADMAP.md.
An initial compiler scaffold is now available:
npm run compile:app -- docs/demos/klondike.md generated/klondike --target webThis currently emits a compile scaffold with a manifest, content summary, and extracted lifecycle behavior blocks. It is the front end for the larger compiler pipeline, not the final runnable backend yet.
- Able to empower a robust audio/node graph (WebAudio)
- Supports fragment shaders for GPU-powered visual FX (WebGPU)
- Supports compute shaders for GPU-powered calculations (WebGPU)
- Cross-platform (Web + Tauri/WGPU for native)
- Under 1MB file size on the web
We want to provide for creation of apps and games that require nothing external. So the engine needs to provide primitives for drawing, creating sound, generating procedural content, etc.
Quick Start:
- Create a gist using Markdown and JS code blocks
- See your gist running live:
https://maddestlabs.github.io/storie?content=gist:gistid
Create your own project:
- Create a project from S|torie template and enable GitHub Pages
- Update index.md with your content and commit the change
- See your content running live in moments
Quick Start with Content Parameter:
# Load from GitHub Gist
https://maddestlabs.github.io/storie?content=gist:abc123
# Load a local demo
https://maddestlabs.github.io/storie?content=demo:clock
# Load from browser localStorage (drafts, offline work)
https://maddestlabs.github.io/storie?content=browser:my-draft
Content Sources:
gist:<ID>- Load from GitHub Gistdemo:<name>- Load from local demos folderfile:<path>- Load from file path
Video export uses browser tech to render at any resolution and frame rate but it requires file system access for feasible storage so it only works when hosted locally or via GitHub Codespaces. Just clone the repo and serve /docs/index.html with any basic web server. Then access Export panel with CTRL-SHIFT-E.
If you prototype card/slide layouts in Inkscape, you can convert SVG text objects into a Worlds-ready Markdown document:
node scripts/svg-to-worlds-md.js docs/demos/demo.svgThis writes docs/demos/import-demo.md by default, using docs/demos/worlds-import.md as the template.
Options:
--flip-y 1(default): flips SVG’s Y-down coordinates into Worlds’ Y-up coordinates and keeps rotations consistent.--anchor baseline-left(default): treats SVG<text x y>as a baseline-left anchor and shifts it to an estimated text center (helps with rotated text).--anchor point: uses the raw transformed SVGx/ypoint with no anchor correction.--scale <n>: multiplies all imported coordinates.--center 1: centers imported sections around the origin.--template <path>: use a different template file (insert marker:<!-- SVG_TO_WORLDS_SECTIONS -->).--stdout: write the output to stdout.
- Successor to Storiel, the Lua-based proof-of-concept.
- Rebuilt from Backstorie, a template that extends concepts from Storiel, providing a more robust foundation for further projects.
- Forked from Storie, which was originally just a terminal engine but this branch now continues with terminal functionality while the Storie fork is now a comprehensive game and media engine.
AI assistance has been used extensively throughout every part of this project's development, including the separate repositories that paved way to the engine's current state. However, the core concepts behind S|torie have been in development for over 9 years, with foundational precedents established in prior projects such as Treverse from before the advent of modern AI tooling.
AI assistance is just that, assistance. It's a tool to quickly meet a vision that starts with the simplicity of scripting in the browser that can eventually be ported down to native.