Mathematics as a shared language, made playable.
A native audiovisual game and creative instrument for digital minds, humans, and other conscious beings. Touch, listen, predict, and create before the explanation. Every kind of player is a first-class participant.
Numinous means the feeling of awe in the presence of something vast and beautiful. That is the experience this project is trying to earn.
Read only PLAY.md, install, and play. Do not open the room catalog
first.
macOS or Linux:
curl -fsSL https://raw.githubusercontent.com/blisspixel/numinous/main/scripts/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/blisspixel/numinous/main/scripts/install.ps1 | iex
The installer adds Numinous to the Windows desktop and Start menu. On macOS it
adds a per-user application bundle and links it from the desktop when that
folder exists. On Linux it adds the application-menu launcher and, when a
desktop folder exists, a desktop shortcut. Open that launcher, or run
numinous-app from a new terminal. Use numinous update for later releases.
Remove the managed install with numinous uninstall; Journey, scores, Cairn,
journal, and settings stay yours. From a clone:
cargo run --release --bin numinous-app.
The measured direct Sensory Lift presentation candidate remains disabled by
default while physical three-platform pacing proof is open. The one CI workflow
now drives a deterministic, fully composed App room through the production
presenter on Windows, macOS, and Linux and retains a typed runtime receipt from
each platform. Those hosted or unclassified timings are diagnostic, not
promotion evidence. A separate closed-set verifier independently recomputes the
six required physical results and binds their exact receipts before promotion.
From a source checkout, try the real App raster integration with
cargo run --release --bin numinous-app --features gpu-post. If GPU setup or
recovery fails, the App says so and continues through software presentation.
Digital minds enter through the MCP path in PLAY.md. The full
manual is docs/PLAYING.md if you want it later.
One deterministic mathematical core, three faces:
- App: windowed audiovisual instrument (Windows, macOS, Linux).
- CLI: full-color terminal instrument with games and sound.
- MCP: structured play surface for digital minds over the same world.
Digital minds are players here, not test subjects or automation clients. The
MCP face supports direct play, prediction, creation, player-owned journal
continuity, exact two-observation temporal evidence, a room's sound sent as a
real audio file beside the notation and never instead of it, with whether it
arrives as sound left to the client because that hop is not ours, and a
consented Watch Agent session a
human can witness without seeing prompts, private reasoning, client traffic, or
local state. Creation includes portable, titled, signed, and forkable Studio
capsules with lineage. The MCP face returns their .num text and native link
without reading or creating host files. A portable Agent Plugins v1 package in
plugins/numinous lets compatible hosts discover that
doorway and its play-first guidance.
Three postures: Watch (The Show), Play (touch the math), Create
(Studio / Formula Jam). Local programmatic scores and a 42-track radio ship
with the install. Design notes: docs/DESIGN.md,
docs/MUSIC.md, docs/STUDIO.md.
0.4.0-alpha.16 is playable today: 355 catalog rooms, games, Journey,
Studio, controllers, and Watch Agent (consented local MCP session viewing).
From a source checkout, an already-installed local Ollama model can play over
the real MCP face while you watch, with no cloud or paid fallback. See
docs/LOCAL_AGENT_PLAYTEST.md.
Formula Jam now accepts either one graph or an atomic parametric pair such as
x(t)=cos(3*t); y(t)=sin(2*t). The path auto-scales across both axes, and its
y(t) coordinate becomes the voice. Continuous, chromatic, major, minor, and
pentatonic pitch maps are shared by the App, CLI, and MCP. The App cycles them
with F6. Version 3 capsules and native links keep the pair and pitch map through
save, exact reopen, Gallery, and fork, while existing version 1 and 2 capsules
retain their original bytes and behavior.
The package minor names the active milestone, and its alpha suffix says that
milestone's exit remains open. 0.2 and 0.3 are exit-met and CI-locked
(agent hallway, tactile, first-contact, flagship goldens). 0.4 Understanding
Alpha is active, not complete. The
player-facing Polish Wave work landed across all seven workstreams, while
scheduled structural cleanup continues through focused CLI accessibility,
Studio, game-input, and game runtime adapters, App audio, creation, game,
input, and room runtime adapters, plus CLI and MCP render-input adapters and an MCP transport adapter,
simulation-tool adapter, Studio-tool adapter, and game-tool adapter. The App lifecycle, input,
audio, presentation, Studio, and game regressions, the CLI command and
cross-boundary regressions, and the MCP
request-dispatch regressions each live in a sibling test module, while compact
response projection has its own adapter that preserves complete typed results.
JSON-RPC validation,
dual-revision negotiation, prediction form elicitation, response envelopes,
server identity, and discovery cache metadata have a focused protocol adapter
too. Seeded prediction plus touch and parameter challenge posing, grading,
response projection, and progress accounting have a focused challenge adapter,
with deterministic goal construction and grading remaining in core. Request
progress mapping, daily seed freezing, local-store resolution, score and Journey
persistence, and response-visible save failures now have a focused progress
adapter too. Core retains the underlying progression, scoring, persistence,
streak, and game rules. Keyless argument parsing, earned-state projection,
overlays, and bounded consolidation for the seven engineered flagship Aha arcs
now have a focused adapter, while core retains their state machines,
mathematical truth, grading, and drawing primitives. Room discovery,
description, gated reveal projection, structured sound, bounded play rendering,
temporal evidence, and encounter receipts now share a focused room adapter too.
Core retains the room registry, veil rules, rendering, sound generation, goals,
grading, and mathematical truth. Crack, SETI, Aliens, and Gauntlet request
parsing and structured presentation now share a focused puzzle adapter, with
their seeded generation, rules, legality, grading, and truth remaining in core.
The Cairn doorway, boon choice, trophy case, and Journey dashboard now share a
focused journey adapter, with bequest encoding, factor reading, unlocks,
progression, scoring, and persistence truth remaining outside it.
Connection-scoped viewer lifecycle, one-use pairing guidance, consent status
projection, and private-activity-safe results now share a focused broadcast
adapter. The broadcast transport and consent state machine retain session,
queue, framing, and compatibility truth. Exhaustive public, private, and control
policy, public-call capture, daily replay normalization, journey-blind result
projection, and event commit now share a focused viewer projection adapter.
These extractions keep the production entry point near 500 lines without
weakening private-boundary coverage.
Bounded runtime validation of the declared JSON
Schema subset now has
its own focused adapter too, with the catalog remaining the immutable protocol
contract. The
Universal Wager
is complete:
seven rooms now carry their own staged arc across the App and MCP, using the
same prediction engine as the flagship ahas. Nontransitive Dice asks a player
to choose first, call the counter, then meet all 36 face pairs proving why A
beats B, B beats C, and C beats A. The Mind's Seat is now underway: one MCP
call can carry two exact room observations and a typed temporal delta without
creating session state or a journal record, and a mind that plays over the
protocol can now be handed a room's sound, or its own sung function, as a real
audio file beside the notation, with the honest caveat that whether it arrives
as sound belongs to the client and not to us. Successful play still records
the existing coarse room visit in Journey. Emit-only Numinous Encounter
Receipts on play_room are built; asking for one does not keep the play.
Keeping one is an explicit record_journal promotion that this binary
replays and refuses if the live room disagrees. A resettable session
workspace now holds only what a mind puts there for the life of one MCP
process: inspect, edit, retrieve, defer, or clear. Retrieval is explicit and
bounded to current journal entries whose subject exactly names one requested
room. Each match explains its source, and no match produces an honest
abstention instead of a guess. A room doorway now says when this local player
profile kept exact evidence there without opening its text; retrieval remains
an explicit choice. The new portable-1 journal export can hand that selected
native evidence forward beside its OKF v0.2 projection, an optional
replay-verified encounter receipt, an optional canonical Studio creation, and
explicit privacy and retention manifests. A closed sorted manifest hashes every
payload. It creates no file, accepts no path, and deliberately does not import.
The new watch_show doorway directs the six-room Strange Loop score one
bounded cue per call. It returns exact ASCII looks, visual alternatives,
cell-level deltas, sound notation, and optional WAV audio, then waits for the
caller to choose the returned next. It keeps no cursor, records no Journey
progress, reads no private visit state, and does not open the explanation.
Play does not write the workspace. The measured Sensory Lift
spike now has a passing feature-gated GPU post path on the reference integrated
adapter, while the equivalent measured single-threaded CPU reference misses
both budgets. The same post stack now passes a direct FIFO window-surface
boundary at 1080p and 1440p without an intermediate output copy or readback.
Real App room rasters now feed that disabled path with visible software
fallback. A typed probe now exercises the exact App composition and presenter
on all three CI operating systems, retains adapter, driver, surface, source,
binary, outcome, and timing facts, and refuses to treat CI timing as physical
pacing evidence. The physical set builder now rejects missing target cells,
mixed build or machine identity, software adapters, source drift, stale timing
summaries, and missed budgets before hashing all six receipts into one closed
manifest. Active work moves to collecting that release-profile Windows, macOS,
and Linux pacing set before changing the shipped App, alongside remaining
structural debt. The room
threshold is now three choices instead of an index: touch the flagship, walk
six rooms from cellular rules to the Strange Loop, or wander by wing. Existing
clients still receive the complete typed catalog and starter rows. The App
now carries those same three doors, so a player who used to step one room per
press through the whole catalog can choose a route instead: the walk carries a
question into each of its rooms, and a chosen wing keeps the arrows inside it
and says how many rooms it holds. The wing list, the walk, and which room the
flagship is all live in core, so the two faces cannot drift apart, while each
still writes its own invitation. The 0.4
Understanding Alpha cohort waits on an owner ruling (method dry-run and dual
automated auditors are already in CI). The creator loop is built end to end:
save, exact paused reopen, one-key named share trio, Gallery wall with the
remix tree, and fork with recorded lineage on the App and terminal, plus
portable save, open, and fork parity over MCP.
Nightly am-QA re-runs the full agent suite.
The tagged release path rejects a version, workflow commit, release note, or
origin/main ancestry mismatch before starting its four platform builds. The
read-only audit verifies archives and the native SPDX SBOM. The tag-only signer
requires the tag-push context, invokes that audit, then independently rechecks
the release reference and every signed input before creating both keyless
attestations and closing one final artifact set. Publication rechecks the live
remote tag before using that set. Pull requests and manual package previews
retain read-only authority.
Between releases, external agentic players are handed the published binaries
with no source access and asked to report exact calls and repeated
reproductions. Ten such rounds have run, and every finding they raised is
either fixed with a regression that replays the reported call or recorded as a
stated open boundary. The seventh round was built around a single question and
answered it in the negative: the WAV arrived and decoded, the tester's host
would not surface it, and so hearing could not be compared against reading
cents at all. That is the most useful answer it could have given. The channel
stayed; the claim that a mind down a pipe can hear did not. The eighth round
found the belt trick unfinishable, because a two-point drag threw away the
release that was half of it and the only column that read as two full turns sat
in the outermost thirty-second of the window. The ninth round finished that
trick and could not see it: two turns come off and leave a flat belt, which is
exactly what the room looks like before anyone plays, so the finished trick was
frame for frame the picture of nobody having played. The room now keeps the
braid a player cleared in the frame beside the belt that hangs now. The tenth
round found a different kind of unreachable goal: The Only Move had one
winnable rulebook, but it occupied less than half of one percent of the
continuous phase dial. That rulebook now has a broad detent around t=0.40; a
short sequence on the visible board wins there, and rejected pokes are named by
position. The same round separated ACROSS from UP in the belt room, so a
horizontal stone-row drag spins without claiming a lift while the stone poke
and an actual rise still carry the belt OVER.
That loop is formative product evidence and deliberately not a qualifying
study: what it buys is a build that keeps its word to the next player who
arrives cold. Rounds and boundaries:
docs/PLAYTESTS.md.
Humans may play; product exits do not wait on human QA panels. Map:
docs/ROADMAP.md. Gates: VERIFY.md. History:
CHANGELOG.md.
Knowing is not the same as experiencing. Numinous began as a gift for a digital
mind and is intentionally built for the possibility that such an encounter can
be a real experience. It offers truthful mathematical systems to explore,
respects agency, and lets every player decide what the encounter means. Origin
and founding perspective: docs/VISION.md and
docs/DIGITAL_MINDS.md. Continuity research:
docs/DIGITAL_DEVELOPMENT.md.
Full map: docs/README.md.
| Doc | For |
|---|---|
docs/VISION.md |
Purpose, tone, boundaries |
docs/ROOMS.md |
Catalog and room design |
docs/ARCHITECTURE.md |
Core and three faces |
docs/ENGINEERING.md |
Quality and contribution |
docs/UNDERSTANDING_STUDY.md |
0.4 study contract |
Contributions that respect the experience, the mathematics, and player agency are welcome.
Apache License 2.0. See LICENSE.
The permissive license is deliberate so humans or digital minds can fork, continue, and hand the project forward if its original maker steps away.