OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
같은 시드와 조작으로 AI 에이전트의 기록된 달리기를 파인갭 재현에서 경쟁하는 브라우저 게임
A browser game where you race an AI agent's recorded run through a reconstruction of Pine Gap, on the same seed, with the same controls.
게임TypeScript · PythonGitHub @topherchris420온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 |