cd /news/ai-tools/show-hn-altiverse-what-if-sim-see-di… Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-28661] src=github.com β†— pub= topic=ai-tools verified=true sentiment=↑ positive

Show HN: AltiVerse: What If SIM, see different decisions affect an environment

Developer LeoTheAIDev released AltiVerse, an open-source simulation tool that forks a single decision into 2-4 alternate realities with up to 1,000 AI-driven agents to explore second-order effects. The tool runs fully offline and locally, with an optional LLM layer for narrative generation, aiming to help users reason about policy decisions beyond spreadsheet analysis.

read9 min views4 publishedJun 15, 2026

Take one choice. Play it forward as several alternate realities β€” each a small living world of people who move, stress out, break rules, burn out, form friendships and rivalries, and tell you how it felt.

AltiVerse forks a single decision β€” a school phone ban, a 4-day week, 8- vs 12-hour hospital shifts β€” into 2–4 alternate realities and runs each one forward as a small, living simulation. Up to ~1,000 people with personalities, moods, and relationships move through rooms, react to the policy, and slowly pull the worlds apart. You watch when and why the realities diverge, click any person to compare how they fare across timelines, and export a full report with a recommendation.

It is a thinking tool, not a predictor. Every number and quote comes from a deterministic engine (same seed β†’ same world, every time), with an optional local or online LLM layer to write the prose: in-character thoughts, Q&A, headlines, and reports. Use it to reason about the second-order effects of a decision β€” the stuff that doesn't show up in a spreadsheet.

πŸ”’

Local-first & private.No backend. No telemetry. Nothing is uploaded. Runs, presets, and any API key live only in your browser'slocalStorage

. It works100% offlineout of the box.

Quick startUsing a model (optional)How to use itFeaturesScreenshotsThe simulation, explainedKeyboard shortcutsTech & architecturePrivacyFAQLicense

You need Node.js 18 or newer. Then run one line β€” it downloads AltiVerse, installs it, boots the app, and pops open your browser:

npx github:LeoTheAIDev/Altiverse

That's the whole install. No clone, no cd

, no account, no key, no server β€” it just opens at ** http://localhost:5173** (or the next free port). Nothing to run is built ahead of time.

Prefer to clone it? (keeps the repo so you can hack on it)

git clone https://github.com/LeoTheAIDev/Altiverse.git altiverse
cd altiverse
npm install
npm start          # boots the app and opens your browser at http://localhost:5173
npm run dev        # dev server (without auto-opening the browser)
npm run build      # type-check + production build into dist/
npm run preview    # serve the production build locally
node bin/altiverse.mjs   # the same one-shot launcher the `altiverse` bin uses

πŸ’‘ If you

npm link

(or install globally), thecommand launches the app from anywhere.altiverse

AltiVerse runs fully offline with deterministic content. Turn on a model to get AI-written scenarios, in-character thoughts, character Q&A, daily headlines, and the final report. It speaks to any OpenAI-compatible /chat/completions endpoint β€” open

Settings and point it wherever you like:

Mode Examples Key needed?
Local (nothing leaves your machine)
http://localhost:11434/v1 ), LM Studio, llama.cpp

Online*(bring your own key)*

ollama pull llama3.2          # or qwen2.5, mistral, gemma3 …
OLLAMA_ORIGINS=* ollama serve  # OLLAMA_ORIGINS=* lets the browser reach it

One-click provider presets, a Model picker, and a Test connection button are built into Settings. Your API key is stored only in localStorage

and sent straight to the provider you chose β€” never to us (there is no us; there's no backend).

A run goes Setup β†’ Studio β†’ Report, and every run is saved to History so you can replay it.

Pick whichever entry point fits how much you want to specify:

One-click presetsβ€”Phones at school Β· School start time Β· Office remote work Β· Hospital shifts Β· Prison food Β· Grading. Loads a complete scenario; just press play.Describe it in a sentence*(needs a model)β€” e.g."A hospital deciding between 8- and 12-hour nursing shifts β€” who burns out, who stays sharp, and how patient care changes."*The model fills in the environment, cast, metrics, and realities.Build it field by fieldβ€” full control over environment, the question, each reality's policy, the groups of people, named/pinned characters, metrics, number of days, and the random seed.

Press play and watch the worlds run forward day by day on their own living maps. People move between rooms, get stressed, break rules, burn out, bond, and clash. Scrub the timeline, change speed, and click anyone to open their cross-reality card. Live metrics, trends, the divergence tree, the wellbeing histogram, causal chains, and a per-day newspaper headline all update as you go.

Open the Report for an executive summary, in-character interviews, per-metric explanations, and a recommendation for which reality to pick β€” then export it to Markdown or PDF.

  • Fork 2–4 realities from one shared baseline and run them on asingle synchronized timeline. - Each reality gets its own living mapβ€” a pannable 2-D world of rooms (classrooms, hallway, cafeteria, playground, offices…) with agents drifting around via smooth, physics-based motion. - A per-day Daily Fork newspaper headline for each reality (deterministic, or AI-rewritten on demand).

  • Up to ~1,000 people with archetypes (theanxious overachiever,jokester,rule-bender,weary veteran…), emoji, roles, and personalitytraits(stress-prone, rule-prone, burnout-prone). - The same person exists in every realityβ€” so you can see howthis exact individualfares under each policy. - Emergent relationships, rivalries, popularity, and rumours that spread day to day β€” none of it scripted. Click anyone for a card: their mood strip across all days, a wellbeing score, friends & rivals, AI-written thoughts, and a Q&A box toask them questions in character.

Live metrics(0–100) compared across realities β€” use the** 8 defaults**(Focus, Grades, Trust, Stress, Burnout, Rule-breaking, Conflict, Corner-cutting) or define** your own**(up to 10); direction (β€œhigher is better” vs β€œlower is better”) is auto-detected.** Metric trends**β€” sparklines per metric, every reality on one chart.** Divergence tree**β€” an SVG fan from the shared baseline showing exactly which day the worlds split.** Wellbeing histogram**β€” thedistributionof how people are doing, not just the average.Causal chainsβ€” arule β†’ consequence β†’ second-order effectbreakdown for each reality.

  • Works with any OpenAI-compatible endpointβ€” local (Ollama, LM Studio, llama.cpp) or online (OpenAI, OpenRouter, Groq, Together). - Powers AI scenario generation, in-character thoughts & Q&A, daily headlines, per-metric explanations, interviews, and the recommendation.
  • Robust to small-model quirks: malformed JSON is auto-repaired with .jsonrepair

Deterministic engineβ€” a seeded Mulberry32 PRNG means the same seed always produces the same world.** Reseedto explore variations without re-calling the model.- Full timeline controlsβ€” , step day-by-day, scrub, and 0.5Γ— / 1Γ— / 2Γ— / 4Γ—**speeds. Historyβ€” every run is saved (up to 24), replayable, and resumable.- Export the report to Markdown / PDF.

No backend, no telemetry, nothing uploaded. Runs, presets, and keys live only in your browser. Fully usable offline.

Concept What it means
Reality / branch
One alternate world forked from the baseline, defined by a policy (e.g. β€œConfiscate phones at the door”). 2–4 per run.
Persona
A person who exists across all realities β€” fixed identity, name, archetype, emoji, and traits.
Agent
That persona on a given day in a given reality β€” with state (stressed / rule-breaking / burned-out) and a position in a room.
Metric
A 0–100 measure (Focus, Stress, Trust, …). Default set of 8, or define up to 10 of your own.
Event
Something that happened that day β€” policy, organic (state-driven), or social (a bond, a clash, a rumour).
Divergence
The metric-distance between realities over time, the day they first split, and the top metrics driving the gap.
Causal chain
A rule β†’ consequence β†’ second-order effect narrative explaining a reality's movement.
Seed
The integer that makes a run reproducible. Same seed β†’ identical world. Reseed bumps it to explore variations.

Environments ship as presets β€” School, Office, Startup, Hospital, Prison, Summer Camp β€” each with its own roles (student/teacher, employee/manager, nurse/patient…) and rooms. Type anything else and it builds a custom environment around your text.

Defaults at a glance: seed 20260607

Β· 30 days Β· 18 members + 4 staff Β· 2 realities Β· 8 metrics Β· speed 1Γ— Β· model llama3.2

@ http://localhost:11434/v1

.

(in the Studio)

Key Action
Space
Play /
← / β†’
Step one day back / forward
Home / End
Jump to the first / last day
Esc
Close the open character card
click a person
Open their cross-reality card

Vite + React + TypeScript. No backend, no build step required to run (npm start

).Deterministic coreβ€” a Mulberry32 PRNG drives every world; each branch runs on a derived seed so realities stay independent yet reproducible.LLM layerβ€” a thin, dependency-light client (plainfetch

) against any OpenAI-compatible/chat/completions

endpoint, with JSON repair for small models. Disable it and everything still works deterministically.Smooth motionβ€” agents move with spring physics + damping, written straight to the DOM so hundreds render without per-frame React re-renders.Persistenceβ€” runs, presets, and config live inlocalStorage

(history capped at 24 entries).

src/
β”œβ”€β”€ sim/         # deterministic engine: types, scenario builder, engine, RNG
β”œβ”€β”€ llm/         # OpenAI-compatible client + scenario / thoughts / explain / report
β”œβ”€β”€ components/  # the studio, maps, panels, cards, report, setup, pages
β”œβ”€β”€ hooks/       # simulation clock + agent motion
└── app/         # run history & persistence

AltiVerse has no backend and collects nothing.

  • Runs, saved presets, and any API key live only in your browser's localStorage

. - With a local model (Ollama / LM Studio / llama.cpp),nothing leaves your machine. - With an online model, requests godirectly from your browser to the provider you chose β€” your key is never sent anywhere else. - Works fully offline with deterministic content and no model at all.

Does it predict the future? No. It's a structured thinking tool for second-order effects β€” a way to feel out the trade-offs of a decision, not a forecast.

Do I need an API key or internet? No. It runs fully offline and deterministically. A model is optional and only adds the written prose (thoughts, headlines, reports).

Will my API key leak? It's stored only in your browser and sent only to the provider you pick. There's no backend to leak it to.

Why do two runs look identical? Because they're deterministic β€” same seed, same world. Hit Reseed to explore a variation.

Can I add my own metrics / people / environment? Yes β€” define custom metrics (up to 10), pin named characters with their own personalities, and type any environment you like.

MIT β€” open source. Fork it, change it, ship it.

Built with Vite Β· React Β· TypeScript β€” and a deterministic little universe.

── more in #ai-tools 4 stories Β· sorted by recency
── more on @leotheaidev 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/show-hn-altiverse-wh…] indexed:0 read:9min 2026-06-15 Β· β€”