尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證What if a map became somewhere you could go? Pine Gap transforms public-source spatial data into playable open-world simulations, combining real-world reconstruction with driving, exploration, dynamic environments, interactive systems, and unexpected discoveries.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Satellite Vision Scape turns a game into an instrument for observing agent behaviour. Walk through a reconstruction of Pine Gap, get behind the wheel, deliver a coffee without spilling it, or follow a radio signal into a midnight concert. Then give an agent the same task and inspect what actually happened.
A human and an agent share the world's controls, physics, collisions and task rules. The agent chooses an intention; local controllers carry it out; the simulation determines the outcome. Decisions, handovers and results become exportable traces.
Status: experimental. One site, two task modes, recorded live-model sessions and scripted experiments. The agent receives structured observations and uses local movement controllers, so these runs measure decision-making within that setup—not human-equivalent perception or motor skill.
Explore the world · Controls · How it works · Recorded runs · Development · Documentation
Human play, the race and the scripted baseline need no API key. Open the browser experience: the first screen offers the race, and everything else is one click further in.
| Experience | What you do | What it makes observable |
|---|---|---|
| Race Jev | Take a vehicle, reach the checkpoint and shake the response, on the seed Jev ran, with its recorded run drawn beside you and a live gap. Time to beat: 1:44.5, from a committed trace. | The same task, the same rules and a stated difference. What the comparison does and does not show → |
| After Hours | Deliver coffee across the site, decode a radio clue, tune four signal terminals and reach a midnight concert. | Planning across stages, smooth driving, feedback-based tuning and knowing when to wait. |
| GTA-Style Free Roam | Choose one of 16 seeded scenarios, including free play. Walk, drive, interact with traffic and pedestrians, and attempt challenges with a human, Jev or a scripted controller. | Navigation, vehicle handling, aiming, recovery and the consequences of actions. |
| Explore, Tour and Plan | Fly over the site, take a camera tour or inspect the overhead plan. Select a structure to see its source dossier. | The historical reference behind the scene, separated from the fictional gameplay. |
Then try After Hours. Collect the coffee at the canteen cart, find a vehicle and follow the objective. The cup reacts to braking, cornering and impacts. After delivery, switch the radio to the Numbers Station and follow its captioned clue.
To watch the same journey without a model key, open the scripted baseline and start After Hours from More ways to play. It is a hand-written policy, clearly labelled in the interface.
The vehicle radio features Green Machine by Indigo People, original music written by Christopher Woodyard. The puzzle and concert use a separate procedural score. Soundtrack, credits and permissions →
| Action | On foot | In a vehicle |
|---|---|---|
| Move / drive | W A S D | W accelerate · S brake / reverse · A D steer |
| Look | Mouse | Mouse |
| Sprint / walk | Shift / C | — |
| Jump / handbrake | Space | Space |
| Interact / enter / exit | E | E |
| Headlights | — | L |
General: Esc pauses and releases the mouse; M mutes; the mouse wheel adjusts camera distance. 1–4 select Play, Explore, Tour and Plan. Press H to reclaim control while an agent is playing.
Free Roam: Q or right mouse aims; Z or left mouse fires; F also enters/exits vehicles. J requests Jev control and K enables Jev assist. See the Free Roam guide for modes and scenario rules.
Touch and performance: touch controls provide movement, drag-to-look and action buttons. Phones and coarse-pointer devices start at Low quality before the 3D scene mounts, with reduced rendering resolution and shadows disabled. A WebGL-capable browser is required; performance still depends on the device. If the scene struggles, choose Low quality in the viewer.
| Control | Action |
|---|---|
R | Radio power; retry playback if the browser blocked it |
T | Next station |
, / . | Previous / next album track |
[ / ] | Tune the receiver |
- / = | Music volume |
A D or arrow keys | Turn a terminal dial while its panel is open |
Y | Retry the coffee delivery |
V / X | Toggle the concert camera / end the transmission |
Pause → After Hours → Settings offers reduced motion, clean audio, signal guidance and effect intensity. Radio clues have captions; terminal feedback includes waveforms, meters and text, so the journey can be completed muted.
After Hours saves progress and preferences in browser storage and resumes at safe checkpoints. Run traces are separate: export a trace before leaving if you want to keep the session's evidence.
An agent cannot declare its own task complete. Progress comes from the game's ordinary interaction and simulation code.
flowchart TD
H["Human input"] --> C["Shared gameplay controls"]
A["Agent intent"] --> V["Validation and local controller"]
V --> C
C --> W["World physics and task rules"]
W --> T["Traces and measured outcomes"]
W -. "Structured observations" .-> A
The shared world does not make the two controllers identical:
| Human | Agent | |
|---|---|---|
| Perception | Rendered scene, audio and interface | Bounded structured observations of player-visible information |
| Movement | Direct steering and movement input | Intent translated into controls by a local executor |
| Decisions | Continuous player input | Discrete choices, with provider latency |
| Outcome | Determined by the simulation | Determined by the same simulation |
The local planner, driving controller and prompt assists contribute to performance. They must be considered alongside the model when interpreting results. Runtime contracts and authority boundaries →
These measurements come from committed traces. They describe individual historical sessions, not a success rate or a claim about the current model.
| Recorded live Jev session | Task result | Task elapsed | Decisions | Collisions | Human interventions |
|---|---|---|---|---|---|
| After Hours · 27 September 2026 | Complete; 100% coffee delivered; all four terminals and concert completed | 457.82 s | 212 | 0 | 0 |
| Borrowed Wheels · 3 October 2026 | All three stages completed | 143.6 s | 126 | 1 pedestrian collision | 0 |
Completion is only one measurement. The Free Roam run above also records 17 hard-braking events. Keeping those outcomes beside the successful objective is part of the point.
The After Hours case study includes an earlier run that stalled at a terminal and the changes that preceded the completed run. Experiment reports examine control magnitude, tuning feedback, decision latency, travel review and human/agent comparison. No human reference run is currently committed for the After Hours comparison.
| Mode | Record | Replay boundary |
|---|---|---|
| After Hours | Open /?agentHud=1, play, then choose Export trace in the agent panel. | svs-agent-trace/v1 replay re-issues agent intentions through validation. It does not restore a world snapshot or replay human control segments. |
| Free Roam | Use the mode's run export and comparison controls. | svs-freeroam-trace/v1 rebuilds the seed/scenario and replays recorded frame controls without model calls. State checkpoints report divergence. |
Free Roam replay depends on compatible simulation code and runtime behaviour. A recording can drift across builds or JavaScript engines; the acceptance review documents both matching replays and cross-engine drift. Metrics are computed by the client, not independently attested by a server.
Use Bun 1.3+, a Node.js version compatible with Vite 8 (20.19+ or 22.12+) and a WebGL-capable browser.
git clone https://github.com/topherchris420/satellite-vision-scape.git
cd satellite-vision-scape
bun install --frozen-lockfile
bun run dev
Open the URL printed by Vite. If your environment cannot bind IPv6, use bun run dev --host 127.0.0.1.
| Local entry point | Purpose |
|---|---|
/ | Human play and the mode selector |
/?controller=mock | Scripted After Hours baseline; press After Hours |
/?controller=random&seed=42 | Seeded random After Hours policy |
/?agentHud=1 | Show the After Hours trace panel during human play |
/?controller=replay | Import an After Hours agent trace |
/thesis | The digital-twin motion piece |
Jev uses a TypeSafe API key on the server. Human play, local baselines and trace replay work without one. The UI reports when Jev is unavailable on a deployment.
Set these in your server environment, or in a local .env.local file (ignored by Git), then restart bun run dev:
TYPESAFE_API_KEY=your_key_here
TYPESAFE_MODEL=jev-latest
JEV_ASSISTS=full
Only TYPESAFE_API_KEY is required. TYPESAFE_MODEL defaults to jev-latest; JEV_ASSISTS defaults to full, with lean and none available for comparison.
Choose Jev After Hours or Co-pilot, or select a Free Roam challenge and Let Jev Play. Live decisions call the external API and may incur charges. Keep the key server-side; never use a VITE_ prefix or commit credentials.
Configuration and live-run instructions → · Assist profiles and evaluation method →
Stack: React 19 · TypeScript · TanStack Start / Router · Three.js · React Three Fiber · Drei · Tailwind CSS 4 · Vite 8 · Bun.
bun run test
bun run test:agent
bun run test:freeroam
bun run test:experiments
bun run typecheck
bun run lint
bun run build
bun run preview
bun run preview builds for Node and serves it the way production runs, on port 3000 unless PORT says otherwise. CI runs the same typecheck, lint, tests, build and secret scan on pushes to main and on pull requests. The focused test commands are subsets of the full suite. Tests cover world interactions, agent authority, takeover, contracts, replay integrity and experiment definitions. bun run verify:secrets performs a separate production build with a canary credential and scans the output for leaks.
Inspect existing evidence or run a local, non-billable experiment:
bun run experiment list
bun run trace docs/traces/jev-after-hours-live-2026-09-27.json
bun run experiment tuning-control-magnitude --runs 3 --out experiments/results/local-tuning
The short experiment is marked partial. Its explicit output directory keeps the committed reference result intact. Full studies define an independent variable, paired seeds, measured outcomes and falsification criteria, with one hashed trace per run. Live experiments require explicit billable-provider opt-in. Experiment workflow →
| Area | Entry point |
|---|---|
| World, physics, vehicles and interaction | src/game/ |
| After Hours and Free Roam task mechanics | src/game/afterhours/ · src/game/freeroam/ |
| Agent contracts, providers, execution and traces | src/agent/ · src/agent/freeroam/ |
| Server-side Jev adapter | src/server/agent/ |
| 3D scene and play interfaces | src/components/site/ · src/components/game/ |
| Historical manifest, terrain and spatial transforms | src/lib/ |
| Experiment definitions, runner and reports | experiments/ |
| Capability probes and browser verification tools | · |
Bring your own agent: implement AgentProvider.decide(), receiving a validated observation and returning an intent or typed failure. Keep remote credentials in a server adapter. The runtime guide covers contracts and extension points.
For a useful contribution, identify the mode and seed, export a trace, describe the expected and observed behaviour, and include browser/device details for rendering problems. Changes to agent behaviour should preserve ordinary input, human takeover and trace provenance.
Pine Gap is the first environment. Its antenna positions and diameters are anchored to the February 2016 survey by Desmond Ball, Bill Robinson and Richard Tanter, with source IDs retained in the scene.
| Layer | What the project represents |
|---|---|
| Historical reference | Published antenna coordinates and diameters, with a documented longitude correction for 98-A. |
| Approximate reconstruction | Exterior shells, buildings, roads and fences derived from public visual context; synthetic terrain and vegetation. |
| Fictional gameplay | Characters, vehicles, coffee delivery, radio stations, signal terminals, crowds, pursuit, challenges and every agent action. |
This is a public-reference exterior reconstruction with invented game mechanics. It does not represent current operations, real access procedures or surveyed terrain, and buildings have no playable interiors.
The simulation uses stylised vehicle dynamics and simplified collision geometry. It is one authored setting, with no environment editor or multiplayer service. Its agent boundary is an application architecture, not a sandbox for untrusted code; live API limits are held in memory per server instance.
Historical source and correction · Data sources · Provenance · Free Roam limitations
| Read this for… | Guide |
|---|---|
| Agent contracts, validation, takeover and evaluation | Agent runtime |
| Jev configuration, recorded success and failure analysis | Jev After Hours |
| Seeded scenarios, shared actions, replay and comparison | Free Roam · Acceptance review |
| How startup and frame rate were measured and what changed | Performance |
| Reproducible experiments and hypothesis tracking | Experiments · Research backlog |
| Prompt assists, capability probes and model comparisons | Next-model method |
| Proposed mathematical extension; not yet tested | Research proposal |
| Terrain, spatial coordinates and data pipelines | Terrain architecture · Spatial context · |
Separate project in this repository: 99.9% SURE is a Vers3Dynamics mission for a separately installed GTA: San Andreas PC game. It is not part of the browser experience; its guide distinguishes headless validation from in-game testing that remains outstanding.
Created by Christopher Woodyard / Vers3Dynamics. Jev is provided by TypeSafe. Original recordings by Indigo People are used with the songwriter's permission; the procedural puzzle score is credited separately.
The repository currently has no top-level LICENSE file. Music, artwork, reference material and third-party data retain their own terms; public availability does not grant a single licence for everything. Consult the attribution and permission documents above before reuse.
evals/| Music and asset permissions | Soundtrack · Attributions · Data and licence notes · Notice |