Skip to content

justinstimatze/score

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScoreImmersive

A design tool for immersive experience makers. Browse a library of 356 plays — atomic experience beats drawn from immersive theater, ARGs, pervasive games, and transformative experience design — arrange them into arcs, check them for structural problems, and score them against participant profiles.

Works as a standalone web app and as a Miro sidebar panel that reads your board and drops play cards directly onto it.

Plays library Engagement planner
Plays library — browse, filter, and expand plays Analyze tab — participant profile with Big Five sliders and mechanism weights

Try it now

→ Open the app — no Miro account needed. Browse all 356 plays, build an arc in the text box, run the linter and planner right in your browser.

→ Browse the full plays library — all 356 plays with complete metadata, readable on GitHub without opening the app.


Add to Miro (3 steps, ~5 minutes)

  1. Go to developers.miro.com and sign in with your Miro account
  2. Click Create new app → give it any name → under App URL paste exactly this:
    https://justinstimatze.github.io/score/panel.html
    
  3. Under Permissions tick boards:read and boards:write → click Install app and get OAuth token → select your Miro team → Add

Open any board in that team. The ScoreImmersive icon appears in the left toolbar.


What's in the library

356 plays across every domain that matters for immersive experience design:

  • Immersive theater — mask mechanics, one-on-ones, environmental narrative, actor loops (Punchdrunk, Sleep No More)
  • ARGs and pervasive games — real domains, planted evidence, breadcrumb trails, alternate reality layers (Jejune Institute, Ingress)
  • Transformative experience design — micro-authorization cascades, counter-identity encounters, reintegration scaffolding (McLain)
  • Group dynamics — faction formation, allegiance forks, shared crisis beats, group synchronization (Galactic Starcruiser)
  • Con artistry and intelligence tradecraft — convincer mechanics, cold read, tradecraft patterns (Maurer, Goffman, FBI BCSM)
  • Ritual design — graduation rituals, liminal transitions, threshold marking (van Gennep)
  • Physical world — dead drops, spatial messages, location dispatch, certified mail
  • Digital and AI-native — AI character interfaces, voice clones, synthetic media, LLM contamination

Each play has 27 fields: mechanisms, beat function, arc fit, somatic quality, identity invite, dwell time, detection window, reversibility, and more.


Self-hosting (optional)

The steps above point at this repo's hosted copy. If you want to host your own — to use a private plays library or customise the app — the app is a folder of static files. Build it and put it anywhere.

Netlify Drop (no account required, 2 minutes)

  1. Clone this repo, open a terminal in miro-app/, and run:
    npm install
    npm run build
  2. Go to app.netlify.com/drop and drag the dist/ folder onto the page
  3. Netlify gives you a URL — use that instead of the one above when registering in Miro

GitHub Pages on your own fork

Fork this repo, enable GitHub Pages under Settings → Pages → GitHub Actions, then add this workflow file:

.github/workflows/deploy.yml
name: Deploy to GitHub Pages
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: cd miro-app && npm install && npm run build
      - uses: actions/upload-pages-artifact@v3
        with: { path: miro-app/dist }
      - uses: actions/deploy-pages@v4
        id: deployment

Your URL will be https://your-username.github.io/score. Use /panel.html appended when registering in Miro.


How to use it

Browse plays — search by keyword, filter by phase (build, escalate, threshold, climax) or pacing (ramp, spike, hold). Expand any play to read its full description. In Miro, drag the ⠿ handle to drop a play card onto your board.

Build an arc — in Miro, arrange play cards left to right in sequence order. In the standalone app, type or paste play IDs into the arc input, one per line.

Check Arc — runs the structural linter against your sequence. Flags contraindicated pairs, missing permission grants, detection accumulation, rhythm problems, and more.

Analyze for Profile — load a participant profile (start from a template or build from scratch with Big Five sliders and mechanism weights), then run the planner to see engagement scores for each beat.

Guide tab — drop reference arcs onto your board: Sleep No More, House of the Latitude, The Game, Galactic Starcruiser, and others.


For developers

The web app lives in miro-app/. See miro-app/README.md for the dev setup, project structure, and how to bring your own plays library.

The root of the repo contains the underlying Python toolchain — arc linter, planner, simulator, and the full plays library source (plays.md). These are the authoring tools used to build and maintain the library.


License

App code (everything except the plays library) — MIT

Plays library (plays.yaml, plays.md, and derived JSON files) — CC0 1.0 (public domain). No rights reserved.

About

Arc design tool for immersive experience makers — 356-play library, structural linter, participant planner, Miro sidebar app

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE-PLAYS

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors