isostateProject page

Open source · YAML-first · SVG-native

Isometric scenes, written like diagrams.

Create beautiful, scroll-driven isometric visuals with simple YAML — like writing a Mermaid diagram, but with isometric depth. Compile once, embed anywhere. No 3D engine required.

  • YAML scene authoring
  • < 20 KB runtime
  • Zero browser deps
  • SVG no 3D engine

Simple by design

Three steps from idea to animation.

If you can write a diagram, you can create an isostate scene.

01

Write

Describe your scene in YAML — elements, layers, connections, transitions. Small enough to review in a pull request, expressive enough to tell a full visual story.

02

Compile

Run isostate at build time. It validates your scene, catches broken links and missing assets, then produces a tiny optimised browser bundle — nothing heavy ships.

03

Publish

Drop the output on any static host. Choose scroll-driven storytelling, step-through presentation mode, or a static snapshot — one YAML source, your format.

A scene description looks like this

scenes:
  - id: intro
    elements:
      - id: server
        asset: server-box
        at: [3, 4]
      - id: client
        asset: browser
        at: [7, 4]
    connections:
      - id: request-path
        from: {element: client}
        to:   {element: server}
        style: {pattern: dotted, stroke: "#0f5f4f"}
        ambient:
          - name: flow   # animated data flow

One request / seven scenes

Request received
01 / 07

Scroll to scrub · Choose a scene to explore

ProcessingWaitingComplete

Architecture → workflow → process

Follow a request.
Understand a system.

Bring a software story to life with photorealistic assets, flowing connections, and objects that move as you read. Every scene below is a small YAML delta.

Scene 01 / Request

A request begins with a person.

A browser starts the journey. The small document is our request: follow it as the system picks up the work.

The visual storyArchitecture gives the story a place to start. Movement gives it a direction.
YAMLinitial scene
- id: request-received
  elements:
    - id: browser
      asset: architecture-browser
      at: [1, 8]
    - id: request
      asset: process-document
      at: [1, 7]

Scene 02 / API

Give the system a front door.

The gateway rises into place and the same document moves toward it. A dotted connection carries the request from the browser into the API.

The visual storyAdd the gateway once. Update the request position as the reader advances.
YAMLscene delta excerpt
- id: api-entry
  add:
    elements:
      - id: gateway
        asset: architecture-api-gateway
        at: [4, 8]
        enter: rise-from-ground
  update:
    elements:
      - id: request
        at: [4, 7]

Scene 03 / Service

Show where the work happens.

A service and its database enter together. The request continues across the architecture while the completed gateway settles into a green status.

The visual storyPhotorealistic assets describe the components; connections describe their relationships.
YAMLscene delta excerpt
- id: service-and-data
  add:
    connections:
      - id: service-to-data
        from: {element: service}
        to: {element: database}
        style: {pattern: dotted}
        message: {kind: orb, count: 1}
  update:
    elements:
      - id: request
        at: [7, 7]

Scene 04 / Work

Move long-running work off the request path.

A queue and worker arrive above the service. The document changes direction and moves into the background workflow. The architecture now explains what happens over time.

The visual storyPosition changes interpolate continuously, including when you scroll backward.
YAMLscene delta excerpt
- id: background-work
  add:
    elements:
      - id: worker
        asset: architecture-worker
        at: [7, 2]
        activity: {state: processing}
  update:
    elements:
      - id: request
        at: [7, 1]

Scene 05 / AI review

Let an agent prepare the result.

An AI reviewer slides into the workflow. The request travels to the agent while the worker finishes. Animated messages make the direction of the handoff visible.

The visual storyProcessing and completion states help readers distinguish active work from finished work.
YAMLscene delta excerpt
- id: ai-review
  add:
    elements:
      - id: reviewer
        asset: ai-reviewer
        at: [10, 2]
        enter: slide-in-right
        activity: {state: processing}
  update:
    elements:
      - id: request
        at: [10, 1]

Scene 06 / Approval

Make the human decision explicit.

The agent hands its prepared result to a person. An amber connection and waiting status mark the approval boundary; the handoff asset shows who is passing work to whom.

The visual storyA process is easier to understand when the person responsible for the decision is visible.
YAMLscene delta excerpt
- id: human-approval
  add:
    elements:
      - id: approver
        asset: human-approver
        at: [13, 2]
        activity:
          state: waiting
          color: "#c68927"
  update:
    elements:
      - id: request
        at: [13, 1]

Scene 07 / Delivered

Close the loop with a visible outcome.

Approval turns green. The in-flight document and temporary handoff leave the scene, and the delivered result enters beside the browser. One journey, told with additions, movement, and exits.

The visual storyThe finished architecture stays in view. Scroll back to retrace every stage.
YAMLscene delta excerpt
- id: result-delivered
  add:
    elements:
      - id: result
        asset: workflow-end
        at: [1, 2]
        enter: fade-in-grow
  remove:
    elements:
      - id: request
        exit: fade-out-shrink

Visual authoring

Start visually, keep the YAML.

Use the editor to place assets, tune scenes, and export the same `.isostate.yaml` that the CLI validates and compiles. It is the faster way to find anchors, object positions, and scene timing without giving up source-controlled text.

isostate editor showing the canvas, YAML editor, and asset browser

Use cases

Anywhere a static diagram feels flat.

isostate is a generic tool for isometric visualisation. Here are the places where visual sequences make the biggest difference.

01

Architecture Docs

Reveal system complexity one layer at a time. Readers understand each component before the next arrives.

02

Product Tours

Walk new users through your product visually. Show features in context instead of describing them in text.

03

Presentations

Step through scenes like a slide deck. One YAML file, one compelling story for your audience.

04

Technical Blogs

Give long articles a visual rhythm. Let the diagram build as the explanation unfolds.

05

Onboarding Flows

Show rather than tell. Guide new team members through infrastructure step by step.

06

Release Notes

Make changelogs worth reading. Show what changed, where it fits, and why it matters — visually.

Why isostate

Designed to stay out of your way.

YAML you can actually read

Write scenes the same way you write configuration. Use it directly or export it from the visual editor — a format anyone on your team can review and extend.

Scroll or step — you decide

Use scroll-driven mode for immersive docs and storytelling, or manual step-through for presentations. Same source file, different controllers.

Customisable to your brand

Theme with CSS variables. Bring your own SVG assets. Choose your colours, stroke widths, and floor styles. isostate doesn't impose a visual style.

Static, portable, fast

Under 20 KB gzipped. Deploys to GitHub Pages, Netlify, a CDN, or bundled from npm or JSR. No server component, no lock-in, no hassle.

Interactive, exportable scenes

Opt in to pointer interactivity with `element-click`, `element-enter`, and `element-leave` events, or export any scene as a standalone SVG or PNG. A dev-time diagnostics overlay shows grid anchors and connector routes while you tune positions.

Start from a Mermaid diagram

Already have a flowchart? Run `isostate mermaid2dsl` to turn a supported Mermaid diagram into a starting `.isostate.yaml` scene — deterministic output, no `mermaid` package shipped to the browser.

Ready to start?

Make your docs come alive.

You'll have your first scene running in minutes. Start with the story-first docs or browse the examples to see what's possible.