From 860da8b2beb11895e464d2a574541bdfc252425a Mon Sep 17 00:00:00 2001 From: "Yifeng \"Evan\" Wang" <7312949+doodlewind@users.noreply.github.com> Date: Sun, 19 Jul 2026 21:24:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(pocket3d):=20pocket-drive=20=E2=80=94=20st?= =?UTF-8?q?reamed=20open-data=20city=20drive=20on=20PSP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A new pocket3d runtime demo: Midtown Manhattan (OpenStreetMap buildings + streets, 94% surveyed heights) cooked into a tiled .pdrv mesh pack and streamed off the memory stick around a car following a baked scenic route — the Tesla-dash night-drive look on real PSP hardware. - cooker/cook.ts (Bun, zero deps): Overpass fetch → pinned extract → ear-clipped, extruded, vertex-lit tiles in the 12-byte GE vertex layout; Dijkstra waypoint route (Flatiron → Empire State → Herald Sq loop); byte-deterministic; SVG preview. - src/: zero-copy .pdrv reader, async sceIo tile streamer (residency ring, ahead-bias, rise-from-ground animation), zero-triangle infinite-ground backdrop, GE fog, route ribbon, box-art cars with corner slowdown, orbit→chase camera, gu-demo capture contract; embedded-pack fallback. - scripts/pocket-drive.ts: cook + cargo psp + PPSSPPHeadless + PNGs. Verified in PPSSPPHeadless (software renderer): intro rise, avenue drive, 90-degree turns, oncoming traffic, both pack sources; ~35 tiles / ~10k tris per frame. Real-hardware pass pending, same bar as gu-demo. Co-Authored-By: Claude Fable 5 --- pocket3d/Cargo.toml | 2 +- pocket3d/README.md | 8 +- pocket3d/crates/pocket-drive/Cargo.lock | 138 +++ pocket3d/crates/pocket-drive/Cargo.toml | 26 + pocket3d/crates/pocket-drive/README.md | 116 +++ pocket3d/crates/pocket-drive/build.rs | 26 + pocket3d/crates/pocket-drive/cooker/cook.ts | 951 ++++++++++++++++++ .../cooker/data/manhattan.json.gz | Bin 0 -> 228786 bytes pocket3d/crates/pocket-drive/shots/avenue.png | Bin 0 -> 12956 bytes pocket3d/crates/pocket-drive/shots/map.png | Bin 0 -> 133278 bytes pocket3d/crates/pocket-drive/shots/orbit.png | Bin 0 -> 21175 bytes pocket3d/crates/pocket-drive/shots/rise.png | Bin 0 -> 12971 bytes pocket3d/crates/pocket-drive/shots/turn.png | Bin 0 -> 14546 bytes pocket3d/crates/pocket-drive/src/car.rs | 181 ++++ pocket3d/crates/pocket-drive/src/main.rs | 397 ++++++++ pocket3d/crates/pocket-drive/src/pack.rs | 152 +++ pocket3d/crates/pocket-drive/src/scene.rs | 270 +++++ pocket3d/crates/pocket-drive/src/stream.rs | 251 +++++ scripts/pocket-drive.ts | 122 +++ 19 files changed, 2637 insertions(+), 3 deletions(-) create mode 100644 pocket3d/crates/pocket-drive/Cargo.lock create mode 100644 pocket3d/crates/pocket-drive/Cargo.toml create mode 100644 pocket3d/crates/pocket-drive/README.md create mode 100644 pocket3d/crates/pocket-drive/build.rs create mode 100644 pocket3d/crates/pocket-drive/cooker/cook.ts create mode 100644 pocket3d/crates/pocket-drive/cooker/data/manhattan.json.gz create mode 100644 pocket3d/crates/pocket-drive/shots/avenue.png create mode 100644 pocket3d/crates/pocket-drive/shots/map.png create mode 100644 pocket3d/crates/pocket-drive/shots/orbit.png create mode 100644 pocket3d/crates/pocket-drive/shots/rise.png create mode 100644 pocket3d/crates/pocket-drive/shots/turn.png create mode 100644 pocket3d/crates/pocket-drive/src/car.rs create mode 100644 pocket3d/crates/pocket-drive/src/main.rs create mode 100644 pocket3d/crates/pocket-drive/src/pack.rs create mode 100644 pocket3d/crates/pocket-drive/src/scene.rs create mode 100644 pocket3d/crates/pocket-drive/src/stream.rs create mode 100644 scripts/pocket-drive.ts diff --git a/pocket3d/Cargo.toml b/pocket3d/Cargo.toml index 50732b65..74e36fd5 100644 --- a/pocket3d/Cargo.toml +++ b/pocket3d/Cargo.toml @@ -11,7 +11,7 @@ members = [ ] # PSP-only crates (tier-3 target, cargo-psp toolchain) — kept out of the # desktop workspace on purpose, like the repo-root native/ crate. -exclude = ["crates/pocket3d-gu", "crates/gu-demo"] +exclude = ["crates/pocket3d-gu", "crates/gu-demo", "crates/pocket-drive"] [workspace.package] version = "0.1.0" diff --git a/pocket3d/README.md b/pocket3d/README.md index 3590f398..635dcbd9 100644 --- a/pocket3d/README.md +++ b/pocket3d/README.md @@ -33,8 +33,12 @@ pocket3d/ │ │ # entities, clipnode hull tracing (no GPU deps) │ ├── pocket-mod/ # guest hosting: one QuickJS realm, mounted surfaces, │ │ # one guest turn per tick (the mod-runtime mechanism) -│ └── pocket-ui-wgpu/ # the PocketJS `ui` surface on this base: pak feeding, -│ # HostOps for the guest, DrawList → wgpu, Blit compositor +│ ├── pocket-ui-wgpu/ # the PocketJS `ui` surface on this base: pak feeding, +│ │ # HostOps for the guest, DrawList → wgpu, Blit compositor +│ ├── pocket3d-gu/ # sceGu (PSP GE) renderer backend for cooked worlds +│ ├── gu-demo/ # PSP bring-up EBOOT: fly a camera through a .p3d map +│ └── pocket-drive/ # streamed open-data city drive on PSP (OSM → .pdrv +│ # tiles → async memory-stick streaming; see its README) └── examples/ └── uihost/ # PocketJS UI demos in a native macOS window ``` diff --git a/pocket3d/crates/pocket-drive/Cargo.lock b/pocket3d/crates/pocket-drive/Cargo.lock new file mode 100644 index 00000000..e88de3de --- /dev/null +++ b/pocket3d/crates/pocket-drive/Cargo.lock @@ -0,0 +1,138 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" + +[[package]] +name = "glam" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f22fb22f065b308be0d8724e3706c7fa3fc2a6c7d6899df4cad7860e7a75436" +dependencies = [ + "libm", +] + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pocket-drive" +version = "0.1.0" +dependencies = [ + "glam", + "libm", + "pocket3d-gu", + "psp", +] + +[[package]] +name = "pocket3d-bsp" +version = "0.1.0" +dependencies = [ + "glam", +] + +[[package]] +name = "pocket3d-gu" +version = "0.1.0" +dependencies = [ + "glam", + "libm", + "pocket3d-bsp", + "psp", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psp" +version = "0.3.12" +source = "git+https://github.com/pocket-stack/rust-psp.git?rev=2cbaf8c9bc72569c76240a1d9743de10731e5f6b#2cbaf8c9bc72569c76240a1d9743de10731e5f6b" +dependencies = [ + "bitflags", + "libm", + "num_enum", + "num_enum_derive", + "paste", + "unstringify", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unstringify" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9612d66420ead229348915b911ad9689e79dfc347fe7a876a82551c8eab36b5e" diff --git a/pocket3d/crates/pocket-drive/Cargo.toml b/pocket3d/crates/pocket-drive/Cargo.toml new file mode 100644 index 00000000..a0a67693 --- /dev/null +++ b/pocket3d/crates/pocket-drive/Cargo.toml @@ -0,0 +1,26 @@ +# pocket-drive — streamed open-data city driving on the pocket3d GE backend. +# +# A Tesla-dash-style night drive through a real city: the cooker turns +# OpenStreetMap footprints + roads into a tiled `.pdrv` mesh pack, and this +# EBOOT streams tiles in around the car as it follows a baked route. +# +# STANDALONE CRATE (excluded from the pocket3d workspace; cargo-psp only). +# Build + run under PPSSPP with `bun scripts/pocket-drive.ts` from the repo +# root. No QuickJS, no UI core — pure 3D substrate, like gu-demo. + +[package] +name = "pocket-drive" +version = "0.1.0" +edition = "2021" +license = "MIT" + +[features] +# On-screen streaming/perf stats every 300 frames (corrupts captures; for +# PSPLINK bring-up sessions). +stats = [] + +[dependencies] +psp = { git = "https://github.com/pocket-stack/rust-psp.git", rev = "2cbaf8c9bc72569c76240a1d9743de10731e5f6b", features = ["abort-only"] } +pocket3d-gu = { path = "../pocket3d-gu" } +glam = { version = "0.33", default-features = false, features = ["libm"] } +libm = "0.2" diff --git a/pocket3d/crates/pocket-drive/README.md b/pocket3d/crates/pocket-drive/README.md new file mode 100644 index 00000000..3c6dd004 --- /dev/null +++ b/pocket3d/crates/pocket-drive/README.md @@ -0,0 +1,116 @@ +# pocket-drive — a real city, streamed onto a real PSP + +A Tesla-dash-style night drive through Midtown Manhattan on PSP hardware: +OpenStreetMap building footprints and streets, cooked into simple extruded +meshes, **streamed tile-by-tile off the memory stick** around a car that +follows a baked route past real landmarks. New blocks rise out of the ground +as they load — the streaming is the show, not a loading screen. + +| | | +| --- | --- | +| ![orbit](shots/orbit.png) | ![avenue](shots/avenue.png) | +| ![rise](shots/rise.png) | ![turn](shots/turn.png) | + +The cooked area: ~2 × 2.2 km around the Flatiron / Empire State corridor, +4 390 buildings (94 % with real surveyed heights), 822 streets, 76 k +triangles across a 19×22 grid of 128 m tiles. The whole city pack is 2.6 MB; +resident tiles at any moment are ~5 MB of a 24 MB PSP. + +``` +cooker/cook.ts Bun cooker: pinned OSM extract → tiled .pdrv pack + SVG preview +cooker/data/*.json.gz pinned extract (the source of truth; `fetch` refreshes it) +src/pack.rs zero-copy .pdrv reader + 16-aligned tile buffers +src/stream.rs residency ring, async sceIo loads, rise animation +src/scene.rs backdrop (zero-triangle infinite ground), tiles, route ribbon +src/car.rs box-art cars, route follower (arclength + corner slowdown) +src/main.rs boot, pack probing, chase/orbit camera, frame loop, capture +``` + +## Run it + +```sh +bun scripts/pocket-drive.ts # cook, build, PPSSPP, PNGs +bun scripts/pocket-drive.ts --cap-start 0 --cap-n 480 # capture the intro +bun scripts/pocket-drive.ts --embed # no ms0 file: embedded-pack path +``` + +On a real PSP: copy `dist/drive/manhattan.pdrv` to `ms0:/pocket-drive/` next +to the EBOOT (or build with `--embed`). Controls: analog looks around, +CROSS boosts, SQUARE brakes, START pauses. + +## How the streaming works + +The pack is opened once; the streamer keeps a Chebyshev ring of tiles +resident around the car (`KEEP = 5`, ~640 m) with one async `sceIoReadAsync` +in flight at a time, polled per frame — the frame loop never blocks on the +memory stick. Load order is nearest-ring-first with a penalty for tiles +behind the car, so driving into fresh blocks streams the skyline in ahead of +arrival; tiles beyond `EVICT = 6` rings are dropped (free heap, GE-safe +because the previous display list is synced before update runs). A tile +becomes visible through a 30-frame ease-out rise animation driven by the +per-tile model matrix — `scale(32768, 32768·rise, 32768)`, the same matrix +that undoes the GE's 16-bit ÷32768 vertex normalization. + +Without a memory-stick file the EBOOT falls back to a pack embedded at build +time (`DRIVE_PACK`), borrowing tile payloads straight out of `.rodata` behind +a 5-frame simulated latency — same choreography, zero copies, deterministic. + +## The look, for cheap + +- **Zero-triangle ground**: the backdrop fills sky-gradient / haze-band / + ground-gradient screen quads split at the horizon row computed from camera + pitch. The dark "infinite ground plane" is literally the clear color — no + geometry, no z-fighting with roads. +- **Baked lighting in vertex color**: walls shaded by facing (fake NW sun), + darkened toward the base (fake AO), roofs lighter with height; a per-id + hash varies building tint. One `GU_COLOR_8888 | GU_VERTEX_16BIT` draw per + tile plus one `GU_LINES` draw for the roof rim-light lines. +- **GE fog** (`sceGuFog`, 275–625 m) melts distant geometry into the same + haze color the backdrop uses at the horizon, which also hides tile pop-in + past the residency ring. +- **Route ribbon**: the navigation line is a flat miter-joined strip rebuilt + each frame from the baked route, from just behind the car to 350 m ahead. + +Typical frame: ~35 tiles, ~10 k triangles, ~80 draw calls. + +## The cooker + +`cooker/cook.ts` (Bun, zero deps) has two modes. `fetch` pulls buildings + +roads for the configured bbox from the Overpass API (or `--raw` an existing +response), clips roads to the area, projects to local meters and pins a +trimmed extract into `cooker/data/` (~220 KB gzipped) — cooking is offline +and byte-deterministic from that pin. The default mode ear-clips footprints, +extrudes them by surveyed `height` (falling back to `building:levels`, then +an id-hashed default), ribbons the streets by class width, quantizes +everything to the 12-byte GE vertex, buckets triangles into tiles, and walks +the street graph to bake the route: shortest-path legs (Dijkstra) between a +list of scenic waypoints — Flatiron → Empire State Building → Herald Square → +Garment District → Morgan Library → Park Avenue South — closed into a 4.1 km +loop. Cars (the player plus 16 box-art traffic cars running both directions) +follow it by arclength with corner slowdown at runtime. + +Add a city by adding a bbox + waypoints to `CITIES` and running `fetch`. +Nothing in the format is Manhattan-specific. + +## Format (`.pdrv` v1) + +LE, 16-byte-aligned sections: 48 B header (units/m, tile size, grid origin + +dims, offsets) → tile directory (32 B/tile: payload offset, vert/index/line +counts, i16 AABB) → route (16 B/point: x, z, cumulative arclength, speed +class) → per-tile payloads `[12 B verts][u16 indices][12 B line verts]`. +Vertices are tile-local i16 at 1 unit = 0.25 m, ABGR vertex color; index and +vertex data are consumed by the GE in place (file tiles after one writeback, +embedded tiles straight from the module image). + +## Verification + +- Cook determinism: two cooks from the pinned extract are byte-identical. +- PPSSPPHeadless (software renderer) via `scripts/pocket-drive.ts`: boot, + intro rise, avenue drive, 90° turns, oncoming traffic, and both pack + sources verified frame-by-frame; streaming stats via `--features stats` + (121 async tile loads in the first seconds, ~35 tiles/frame drawn). +- Real-hardware pass (PSPLINK, `--features stats` for `avg` numbers): + pending, same acceptance bar as gu-demo. + +Map data © OpenStreetMap contributors, via the Overpass API — ODbL. The +pinned extract in `cooker/data/` is a derived database of that data. diff --git a/pocket3d/crates/pocket-drive/build.rs b/pocket3d/crates/pocket-drive/build.rs new file mode 100644 index 00000000..300405d1 --- /dev/null +++ b/pocket3d/crates/pocket-drive/build.rs @@ -0,0 +1,26 @@ +//! Optionally embeds a cooked `.pdrv` pack (DRIVE_PACK) as the fallback for +//! running without a memory-stick file, plus the capture window envs. Empty +//! fallbacks keep bare `cargo psp` builds green. + +use std::env; +use std::fs; +use std::path::Path; + +fn main() { + let out = env::var("OUT_DIR").unwrap(); + let pack = env::var("DRIVE_PACK").unwrap_or_default(); + println!("cargo:rerun-if-env-changed=DRIVE_PACK"); + println!("cargo:rerun-if-env-changed=DRIVE_CAP_START"); + println!("cargo:rerun-if-env-changed=DRIVE_CAP_N"); + let dst = Path::new(&out).join("city.pdrv"); + if !pack.is_empty() && Path::new(&pack).exists() { + println!("cargo:rerun-if-changed={pack}"); + fs::copy(&pack, &dst).expect("copying DRIVE_PACK"); + } else { + fs::write(&dst, []).expect("writing empty city.pdrv"); + } + let cap_start = env::var("DRIVE_CAP_START").unwrap_or_default(); + let cap_n = env::var("DRIVE_CAP_N").unwrap_or_default(); + println!("cargo:rustc-env=DRIVE_CAP_START={cap_start}"); + println!("cargo:rustc-env=DRIVE_CAP_N={cap_n}"); +} diff --git a/pocket3d/crates/pocket-drive/cooker/cook.ts b/pocket3d/crates/pocket-drive/cooker/cook.ts new file mode 100644 index 00000000..453c4ca6 --- /dev/null +++ b/pocket3d/crates/pocket-drive/cooker/cook.ts @@ -0,0 +1,951 @@ +// pocket-drive cooker: open map data → a tiled, GE-ready `.pdrv` city pack. +// +// Two modes: +// +// bun cooker/cook.ts fetch [--raw overpass.json] # Overpass → data/.json.gz +// bun cooker/cook.ts [--out x.pdrv] [--svg x.svg] # data/.json.gz → pack +// +// The trimmed extract in data/ is the pinned source of truth — cooking is +// offline and deterministic. `fetch` only refreshes that pin (network, or +// --raw for an already-downloaded Overpass JSON). +// +// Units: 1 unit = 0.25 m (4 units/m). +X east, +Z south, +Y up — so yaw 0 +// (-Z) looks north. Tile-local i16 positions ride the GE's ÷32768 3D-mode +// normalization; the runtime scales back up in the model matrix. + +import { existsSync, mkdirSync } from "node:fs"; +import { gunzipSync, gzipSync } from "node:zlib"; + +// ---- city registry ---------------------------------------------------- + +interface City { + /** Overpass bbox: south, west, north, east. */ + bbox: [number, number, number, number]; + /** Projection origin (center-ish). */ + lat0: number; + lon0: number; + /** Scenic waypoints (lat, lon); the route is shortest-path legs between + * consecutive ones, closed back to the first. */ + waypoints: [number, number][]; +} + +const CITIES: Record = { + manhattan: { + bbox: [40.735, -73.998, 40.755, -73.975], + lat0: 40.745, + lon0: -73.9865, + waypoints: [ + [40.7419, -73.9884], // Broadway & W 23rd — Flatiron + [40.7443, -73.987], // Broadway & W 28th + [40.7484, -73.9857], // 5th Ave & W 34th — Empire State Building + [40.7503, -73.9884], // 6th Ave & W 35th — Herald Square + [40.7527, -73.9857], // 6th Ave & W 39th — Garment District + [40.7495, -73.9811], // Madison Ave & E 36th — Morgan Library + [40.7442, -73.9805], // Park Ave S & E 30th + [40.7404, -73.9857], // 5th Ave & E 23rd — Madison Square south + ], + }, +}; + +// ---- tunables --------------------------------------------------------- + +const UNITS_PER_M = 4; // 1 unit = 0.25 m +const TILE = 512; // units (128 m) +const LEVEL_M = 3.2; // meters per building:levels +const MIN_FOOTPRINT_M2 = 12; +const SIMPLIFY_M = 0.6; // footprint/road vertex tolerance + +/** Road classes: render width (m), y offset (units), drivable, speed factor. */ +const ROADS: Record = { + motorway: { w: 16, y: 1.8, drive: true, speed: 2.0 }, + motorway_link: { w: 8, y: 1.8, drive: true, speed: 1.3 }, + trunk: { w: 15, y: 1.6, drive: true, speed: 1.6 }, + trunk_link: { w: 8, y: 1.6, drive: true, speed: 1.2 }, + primary: { w: 15, y: 1.4, drive: true, speed: 1.25 }, + primary_link: { w: 8, y: 1.4, drive: true, speed: 1.0 }, + secondary: { w: 13, y: 1.2, drive: true, speed: 1.1 }, + secondary_link: { w: 7, y: 1.2, drive: true, speed: 1.0 }, + tertiary: { w: 11, y: 1.0, drive: true, speed: 1.0 }, + tertiary_link: { w: 6, y: 1.0, drive: true, speed: 0.9 }, + residential: { w: 9, y: 0.8, drive: true, speed: 0.85 }, + unclassified: { w: 8, y: 0.8, drive: true, speed: 0.85 }, + living_street: { w: 7, y: 0.8, drive: true, speed: 0.7 }, + pedestrian: { w: 6, y: 0.6, drive: false, speed: 0 }, +}; + +// Night-navigation palette (ABGR is packed at write time). +const PALETTE = { + road: [0.215, 0.245, 0.30] as V3, + pedestrian: [0.16, 0.185, 0.235] as V3, + wallBase: [0.335, 0.385, 0.485] as V3, + roof: [0.415, 0.465, 0.565] as V3, + roofLine: [0.615, 0.70, 0.84] as V3, +}; +const SUN = norm3([-0.55, 0.0, -0.45]); // fake sun from the NW, grazing + +type V3 = [number, number, number]; +type P2 = [number, number]; + +function norm3(v: V3): V3 { + const l = Math.hypot(v[0], v[1], v[2]); + return [v[0] / l, v[1] / l, v[2] / l]; +} + +// ---- deterministic hash (per OSM id) ---------------------------------- + +function hash01(id: number): number { + let x = id >>> 0; + x ^= x >>> 16; + x = Math.imul(x, 0x7feb352d) >>> 0; + x ^= x >>> 15; + x = Math.imul(x, 0x846ca68b) >>> 0; + x ^= x >>> 16; + return x / 0xffffffff; +} + +// ---- extract schema --------------------------------------------------- + +interface Extract { + meta: { city: string; lat0: number; lon0: number; fetched: string; source: string }; + /** Rings in local meters (x east, z south), closed implicitly. */ + buildings: { id: number; h: number; minH: number; ring: P2[] }[]; + roads: { id: number; cls: string; pts: P2[] }[]; +} + +// ---- CLI -------------------------------------------------------------- + +const argv = Bun.argv.slice(2); +const mode = argv[0] === "fetch" ? "fetch" : "cook"; +function flag(name: string, def: string): string { + const i = argv.indexOf(`--${name}`); + return i !== -1 && argv[i + 1] ? argv[i + 1] : def; +} +const cityName = flag("city", "manhattan"); +const city = CITIES[cityName]; +if (!city) { + console.error(`unknown city ${cityName} (have: ${Object.keys(CITIES).join(", ")})`); + process.exit(1); +} +const here = new URL(".", import.meta.url).pathname; +const dataGz = `${here}data/${cityName}.json.gz`; + +if (mode === "fetch") { + await fetchExtract(); +} else { + cook(); +} + +// ---- fetch: Overpass → trimmed extract -------------------------------- + +async function fetchExtract() { + const rawPath = flag("raw", ""); + let raw: any; + if (rawPath) { + raw = JSON.parse(await Bun.file(rawPath).text()); + } else { + const [s, w, n, e] = city.bbox; + const bb = `(${s},${w},${n},${e})`; + const q = `[out:json][timeout:120]; +( + way["building"]${bb}; + relation["building"]["type"="multipolygon"]${bb}; + way["highway"~"^(${Object.keys(ROADS).join("|")})$"]${bb}; +); +(._;>;); +out body;`; + console.log("cook: fetching from Overpass…"); + const res = await fetch("https://overpass-api.de/api/interpreter", { + method: "POST", + body: new URLSearchParams({ data: q }), + }); + if (!res.ok) throw new Error(`overpass: HTTP ${res.status}`); + raw = await res.json(); + } + + const nodes = new Map(); + for (const el of raw.elements) { + if (el.type === "node") nodes.set(el.id, project(el.lat, el.lon)); + } + const ways = new Map(); + for (const el of raw.elements) if (el.type === "way") ways.set(el.id, el); + + const buildings: Extract["buildings"] = []; + const usedInRel = new Set(); + + // Multipolygon relations: stitch outer ways into rings. + for (const el of raw.elements) { + if (el.type !== "relation" || el.tags?.building === undefined) continue; + const h = buildingHeight(el.tags, el.id); + if (h === null) continue; + const outers = (el.members ?? []) + .filter((m: any) => m.type === "way" && m.role !== "inner") + .map((m: any) => ways.get(m.ref)) + .filter(Boolean); + for (const w of outers) usedInRel.add(w.id); + for (const ring of stitchRings(outers.map((w: any) => w.nodes as number[]))) { + pushBuilding(buildings, el.id, h, ring, nodes); + } + } + + for (const el of raw.elements) { + if (el.type !== "way") continue; + const t = el.tags ?? {}; + if (t.building && t.building !== "no" && !usedInRel.has(el.id)) { + const h = buildingHeight(t, el.id); + if (h === null) continue; + const ids = el.nodes as number[]; + if (ids.length >= 4 && ids[0] === ids[ids.length - 1]) { + pushBuilding(buildings, el.id, h, ids.slice(0, -1), nodes); + } + } + } + + // Clip roads to the bbox (+margin): Overpass returns whole ways, and a + // street escaping the cooked area would drive the car into the void. + const [s0, w0, n0, e0] = city.bbox; + const m = 60; // meters of slack + const [clipMinX, clipMinZ] = project(n0, w0); + const [clipMaxX, clipMaxZ] = project(s0, e0); + const inBounds = (p: P2) => + p[0] > clipMinX - m && p[0] < clipMaxX + m && p[1] > clipMinZ - m && p[1] < clipMaxZ + m; + + const roads: Extract["roads"] = []; + for (const el of raw.elements) { + if (el.type !== "way") continue; + const t = el.tags ?? {}; + if (!t.highway || !(t.highway in ROADS)) continue; + if (t.tunnel === "yes" || t.covered === "yes" || Number(t.layer ?? 0) < 0) continue; + if (t.area === "yes") continue; // pedestrian plazas: not linear + const pts = (el.nodes as number[]).map((id) => nodes.get(id)).filter(Boolean) as P2[]; + let run: P2[] = []; + const flush = () => { + if (run.length >= 2) roads.push({ id: el.id, cls: t.highway, pts: run.map(round2) }); + run = []; + }; + for (const p of pts) { + if (inBounds(p)) run.push(p); + else flush(); + } + flush(); + } + + const extract: Extract = { + meta: { + city: cityName, + lat0: city.lat0, + lon0: city.lon0, + fetched: raw.osm3s?.timestamp_osm_base ?? "unknown", + source: "OpenStreetMap via Overpass API (ODbL)", + }, + buildings, + roads, + }; + mkdirSync(`${here}data`, { recursive: true }); + const gz = gzipSync(JSON.stringify(extract), { level: 9 }); + await Bun.write(dataGz, gz); + console.log( + `cook: pinned ${cityName}: ${buildings.length} buildings, ${roads.length} roads → ` + + `${dataGz} (${(gz.length / 1024).toFixed(0)} KB)`, + ); + + function pushBuilding( + out: Extract["buildings"], + id: number, + h: { h: number; minH: number }, + nodeIds: number[], + nm: Map, + ) { + const ring = nodeIds.map((n) => nm.get(n)).filter(Boolean) as P2[]; + if (ring.length < 3) return; + const simp = simplifyRing(ring.map(round2), SIMPLIFY_M); + if (simp.length < 3 || Math.abs(ringArea(simp)) < MIN_FOOTPRINT_M2) return; + out.push({ id, h: h.h, minH: h.minH, ring: simp }); + } + + function project(lat: number, lon: number): P2 { + const mPerLon = 111320 * Math.cos((city.lat0 * Math.PI) / 180); + return [(lon - city.lon0) * mPerLon, -(lat - city.lat0) * 110574]; + } + function round2(p: P2): P2 { + return [Math.round(p[0] * 100) / 100, Math.round(p[1] * 100) / 100]; + } +} + +function parseLen(v: string | undefined): number | null { + if (!v) return null; + const s = String(v).trim(); + const ft = s.match(/^([\d.]+)\s*(?:'|ft)/); + const n = ft ? parseFloat(ft[1]) * 0.3048 : parseFloat(s); + return Number.isFinite(n) ? n : null; +} + +function buildingHeight(t: any, id: number): { h: number; minH: number } | null { + let h = parseLen(t.height) ?? parseLen(t["building:height"]); + if (h === null) { + const lv = parseFloat(t["building:levels"]); + h = Number.isFinite(lv) ? lv * LEVEL_M + 1.5 : 8 + hash01(id) * 10; + } + const minH = Math.max(0, parseLen(t.min_height) ?? 0); + if (h <= minH + 0.5) return null; + return { h, minH }; +} + +/** Join way node-lists sharing endpoints into closed rings. */ +function stitchRings(ways: number[][]): number[][] { + const segs = ways.filter((w) => w.length >= 2).map((w) => [...w]); + const rings: number[][] = []; + while (segs.length) { + const ring = segs.shift()!; + let grew = true; + while (grew && ring[0] !== ring[ring.length - 1]) { + grew = false; + for (let i = 0; i < segs.length; i++) { + const s = segs[i]; + const tail = ring[ring.length - 1]; + if (s[0] === tail) ring.push(...s.slice(1)); + else if (s[s.length - 1] === tail) ring.push(...s.reverse().slice(1)); + else continue; + segs.splice(i, 1); + grew = true; + break; + } + } + if (ring.length >= 4 && ring[0] === ring[ring.length - 1]) rings.push(ring.slice(0, -1)); + } + return rings; +} + +// ---- geometry helpers ------------------------------------------------- + +function ringArea(r: P2[]): number { + let a = 0; + for (let i = 0; i < r.length; i++) { + const [x1, z1] = r[i]; + const [x2, z2] = r[(i + 1) % r.length]; + a += x1 * z2 - x2 * z1; + } + return a / 2; +} + +/** Douglas-Peucker on a closed ring (keeps the two extreme anchors). */ +function simplifyRing(ring: P2[], tol: number): P2[] { + const dedup: P2[] = []; + for (const p of ring) { + const last = dedup[dedup.length - 1]; + if (!last || Math.hypot(p[0] - last[0], p[1] - last[1]) > 1e-6) dedup.push(p); + } + if (dedup.length < 4) return dedup; + let a = 0; + let b = 0; + let best = -1; + for (let i = 0; i < dedup.length; i++) + for (const j of [0]) { + const d = Math.hypot(dedup[i][0] - dedup[j][0], dedup[i][1] - dedup[j][1]); + if (d > best) { + best = d; + a = j; + b = i; + } + } + const half1 = simplifyLine([...dedup.slice(a, b + 1)], tol); + const half2 = simplifyLine([...dedup.slice(b), ...dedup.slice(0, a + 1)], tol); + return [...half1.slice(0, -1), ...half2.slice(0, -1)]; +} + +function simplifyLine(pts: P2[], tol: number): P2[] { + if (pts.length <= 2) return pts; + let maxD = 0; + let idx = 0; + const [ax, az] = pts[0]; + const [bx, bz] = pts[pts.length - 1]; + const abx = bx - ax; + const abz = bz - az; + const ab2 = abx * abx + abz * abz; + for (let i = 1; i < pts.length - 1; i++) { + const [px, pz] = pts[i]; + let d: number; + if (ab2 < 1e-12) d = Math.hypot(px - ax, pz - az); + else { + const t = Math.max(0, Math.min(1, ((px - ax) * abx + (pz - az) * abz) / ab2)); + d = Math.hypot(px - (ax + t * abx), pz - (az + t * abz)); + } + if (d > maxD) { + maxD = d; + idx = i; + } + } + if (maxD <= tol) return [pts[0], pts[pts.length - 1]]; + const l = simplifyLine(pts.slice(0, idx + 1), tol); + const r = simplifyLine(pts.slice(idx), tol); + return [...l.slice(0, -1), ...r]; +} + +/** Ear clipping. Returns index triples into `ring`. Winding-agnostic. */ +function earcut(ring: P2[]): number[] { + const n = ring.length; + if (n < 3) return []; + const idx = [...ring.keys()]; + if (ringArea(ring) < 0) idx.reverse(); // make CCW in (x, z) + const tris: number[] = []; + let guard = 0; + while (idx.length > 3 && guard++ < 10000) { + let clipped = false; + for (let i = 0; i < idx.length; i++) { + const ia = idx[(i + idx.length - 1) % idx.length]; + const ib = idx[i]; + const ic = idx[(i + 1) % idx.length]; + const a = ring[ia]; + const b = ring[ib]; + const c = ring[ic]; + const cross = (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); + if (cross <= 1e-9) continue; // reflex or degenerate + let inside = false; + for (const j of idx) { + if (j === ia || j === ib || j === ic) continue; + if (pointInTri(ring[j], a, b, c)) { + inside = true; + break; + } + } + if (inside) continue; + tris.push(ia, ib, ic); + idx.splice(i, 1); + clipped = true; + break; + } + if (!clipped) break; // degenerate leftovers: fan the rest + } + if (idx.length === 3) tris.push(idx[0], idx[1], idx[2]); + else for (let i = 1; i + 1 < idx.length; i++) tris.push(idx[0], idx[i], idx[i + 1]); + return tris; +} + +function pointInTri(p: P2, a: P2, b: P2, c: P2): boolean { + const s = (a[0] - c[0]) * (p[1] - c[1]) - (a[1] - c[1]) * (p[0] - c[0]); + const t = (b[0] - a[0]) * (p[1] - a[1]) - (b[1] - a[1]) * (p[0] - a[0]); + if (s < 0 !== t < 0 && s !== 0 && t !== 0) return false; + const d = (c[0] - b[0]) * (p[1] - b[1]) - (c[1] - b[1]) * (p[0] - b[0]); + return d === 0 || d < 0 === (s + t <= 0); +} + +// ---- cook: extract → .pdrv -------------------------------------------- + +interface TileBuf { + verts: number[]; // packed: color, x, y, z per vert + vmap: Map; + idx: number[]; + lines: number[]; // packed line-vert pairs: color, x, y, z + min: V3; + max: V3; +} + +function cook() { + if (!existsSync(dataGz)) { + console.error(`no pinned extract at ${dataGz} — run: bun cooker/cook.ts fetch`); + process.exit(1); + } + const extract: Extract = JSON.parse( + gunzipSync(new Uint8Array(readFileSyncBytes(dataGz))).toString(), + ); + const outPath = flag("out", `${repoDist()}/${cityName}.pdrv`); + const svgPath = flag("svg", `${repoDist()}/${cityName}.svg`); + + // World bounds in units (roads + buildings). + let wminx = Infinity, wminz = Infinity, wmaxx = -Infinity, wmaxz = -Infinity; + const touch = (x: number, z: number) => { + wminx = Math.min(wminx, x); wminz = Math.min(wminz, z); + wmaxx = Math.max(wmaxx, x); wmaxz = Math.max(wmaxz, z); + }; + for (const b of extract.buildings) for (const [x, z] of b.ring) touch(x * UNITS_PER_M, z * UNITS_PER_M); + for (const r of extract.roads) for (const [x, z] of r.pts) touch(x * UNITS_PER_M, z * UNITS_PER_M); + + const originX = Math.floor(wminx / TILE) * TILE; + const originZ = Math.floor(wminz / TILE) * TILE; + const nx = Math.ceil((wmaxx - originX) / TILE); + const nz = Math.ceil((wmaxz - originZ) / TILE); + const tiles: (TileBuf | null)[] = new Array(nx * nz).fill(null); + + const tileAt = (x: number, z: number): TileBuf => { + let tx = Math.floor((x - originX) / TILE); + let tz = Math.floor((z - originZ) / TILE); + tx = Math.max(0, Math.min(nx - 1, tx)); + tz = Math.max(0, Math.min(nz - 1, tz)); + const i = tz * nx + tx; + if (!tiles[i]) { + tiles[i] = { + verts: [], vmap: new Map(), idx: [], lines: [], + min: [32767, 32767, 32767], max: [-32768, -32768, -32768], + }; + } + (tiles[i] as any)._tx = tx; + (tiles[i] as any)._tz = tz; + return tiles[i]!; + }; + const tileOrigin = (t: TileBuf): P2 => [ + originX + (t as any)._tx * TILE, + originZ + (t as any)._tz * TILE, + ]; + + const addVert = (t: TileBuf, color: number, x: number, y: number, z: number): number => { + const [ox, oz] = tileOrigin(t); + const lx = Math.round(x - ox); + const ly = Math.round(y); + const lz = Math.round(z - oz); + clampCheck(lx); clampCheck(ly); clampCheck(lz); + const key = `${color},${lx},${ly},${lz}`; + const got = t.vmap.get(key); + if (got !== undefined) return got; + const i = t.verts.length / 4; + t.verts.push(color, lx, ly, lz); + t.vmap.set(key, i); + t.min = [Math.min(t.min[0], lx), Math.min(t.min[1], ly), Math.min(t.min[2], lz)]; + t.max = [Math.max(t.max[0], lx), Math.max(t.max[1], ly), Math.max(t.max[2], lz)]; + return i; + }; + const addLineVert = (t: TileBuf, color: number, x: number, y: number, z: number) => { + const [ox, oz] = tileOrigin(t); + const lx = Math.round(x - ox); + const ly = Math.round(y); + const lz = Math.round(z - oz); + t.lines.push(color, lx, ly, lz); + t.min = [Math.min(t.min[0], lx), Math.min(t.min[1], ly), Math.min(t.min[2], lz)]; + t.max = [Math.max(t.max[0], lx), Math.max(t.max[1], ly), Math.max(t.max[2], lz)]; + }; + + // ---- roads → ribbons ---- + let roadTris = 0; + for (const road of extract.roads) { + const spec = ROADS[road.cls]; + const pts = simplifyLine(road.pts.map(([x, z]) => [x * UNITS_PER_M, z * UNITS_PER_M] as P2), SIMPLIFY_M * UNITS_PER_M); + if (pts.length < 2) continue; + const half = (spec.w * UNITS_PER_M) / 2; + const color = packRGB(spec.drive ? PALETTE.road : PALETTE.pedestrian); + // Per-joint left/right offsets with miter (limited). + const L: P2[] = []; + const R: P2[] = []; + for (let i = 0; i < pts.length; i++) { + const p = pts[i]; + const din = i > 0 ? dir2(pts[i - 1], p) : dir2(p, pts[i + 1]); + const dout = i < pts.length - 1 ? dir2(p, pts[i + 1]) : din; + let mx = din[0] + dout[0]; + let mz = din[1] + dout[1]; + const ml = Math.hypot(mx, mz); + if (ml < 1e-6) { mx = -din[1]; mz = din[0]; } + else { mx /= ml; mz /= ml; } + // Miter normal = perpendicular of the averaged direction, scaled. + let nxm = -mz; + let nzm = mx; + const cosHalf = nxm * -din[1] + nzm * din[0]; + const scale = Math.min(2.5, 1 / Math.max(0.35, Math.abs(cosHalf))); + L.push([p[0] + nxm * half * scale, p[1] + nzm * half * scale]); + R.push([p[0] - nxm * half * scale, p[1] - nzm * half * scale]); + } + for (let i = 0; i + 1 < pts.length; i++) { + const midx = (pts[i][0] + pts[i + 1][0]) / 2; + const midz = (pts[i][1] + pts[i + 1][1]) / 2; + const t = tileAt(midx, midz); + const y = spec.y; + const a = addVert(t, color, L[i][0], y, L[i][1]); + const b = addVert(t, color, R[i][0], y, R[i][1]); + const c = addVert(t, color, R[i + 1][0], y, R[i + 1][1]); + const d = addVert(t, color, L[i + 1][0], y, L[i + 1][1]); + t.idx.push(a, b, c, a, c, d); + roadTris += 2; + } + } + + // ---- buildings → extruded prisms + roof edge lines ---- + let bldTris = 0; + let skipped = 0; + for (const b of extract.buildings) { + const ring = b.ring.map(([x, z]) => [x * UNITS_PER_M, z * UNITS_PER_M] as P2); + const area = ringArea(ring); + if (Math.abs(area) < MIN_FOOTPRINT_M2 * UNITS_PER_M * UNITS_PER_M) { skipped++; continue; } + const ccw = area > 0 ? ring : [...ring].reverse(); + const h = b.h * UNITS_PER_M; + const y0 = b.minH * UNITS_PER_M; + let cx = 0, cz = 0; + for (const [x, z] of ccw) { cx += x; cz += z; } + cx /= ccw.length; cz /= ccw.length; + const t = tileAt(cx, cz); + + // Per-building tint (subtle, deterministic). + const tint = 0.94 + hash01(b.id) * 0.12; + const aoTop = Math.min(1, 0.55 + (0.45 * h) / 120); // full brightness by ~30 m + const heightGlow = 1 + 0.12 * Math.min(1, h / 700); // tall towers slightly lighter + + // Walls: split verts per face for flat shading. + const n = ccw.length; + for (let i = 0; i < n; i++) { + const p = ccw[i]; + const q = ccw[(i + 1) % n]; + const ex = q[0] - p[0]; + const ez = q[1] - p[1]; + const el = Math.hypot(ex, ez); + if (el < 1e-6) continue; + // Outward normal of a CCW ring in (x, z) with +Z south: (dz, -dx). + const nrm: V3 = [ez / el, 0, -ex / el]; + const lit = 0.50 + 0.42 * Math.max(0, nrm[0] * SUN[0] + nrm[2] * SUN[2]); + const shade = lit * tint * heightGlow; + const cBot = packRGB(scale3(PALETTE.wallBase, shade * 0.52)); + const cTop = packRGB(scale3(PALETTE.wallBase, shade * aoTop)); + const a = addVert(t, cBot, p[0], y0, p[1]); + const bb = addVert(t, cBot, q[0], y0, q[1]); + const c = addVert(t, cTop, q[0], h, q[1]); + const d = addVert(t, cTop, p[0], h, p[1]); + t.idx.push(a, bb, c, a, c, d); + bldTris += 2; + } + + // Roof. + const roofC = packRGB(scale3(PALETTE.roof, tint * heightGlow)); + const tris = earcut(ccw); + for (let i = 0; i + 2 < tris.length; i += 3) { + const a = addVert(t, roofC, ccw[tris[i]][0], h, ccw[tris[i]][1]); + const bb = addVert(t, roofC, ccw[tris[i + 1]][0], h, ccw[tris[i + 1]][1]); + const c = addVert(t, roofC, ccw[tris[i + 2]][0], h, ccw[tris[i + 2]][1]); + t.idx.push(a, bb, c); + bldTris++; + } + + // Roof edge lines (the Tesla-style rim light), floated just above the + // roof plane so they never z-fight it. + const lineC = packRGB(scale3(PALETTE.roofLine, Math.min(1.15, tint * heightGlow))); + const lineY = h + 1.5; + for (let i = 0; i < n; i++) { + const p = ccw[i]; + const q = ccw[(i + 1) % n]; + addLineVert(t, lineC, p[0], lineY, p[1]); + addLineVert(t, lineC, q[0], lineY, q[1]); + } + } + + // ---- route ---- + const route = buildRoute(extract); + + // ---- write pack ---- + const buf = writePack({ originX, originZ, nx, nz, tiles, route }); + mkdirSync(outPath.slice(0, outPath.lastIndexOf("/")), { recursive: true }); + Bun.write(outPath, buf); + + // ---- stats ---- + const used = tiles.filter(Boolean) as TileBuf[]; + const maxV = Math.max(...used.map((t) => t.verts.length / 4)); + const maxI = Math.max(...used.map((t) => t.idx.length)); + const avgTri = used.reduce((s, t) => s + t.idx.length / 3, 0) / used.length; + console.log( + `cook: ${cityName} → ${outPath}\n` + + ` grid ${nx}×${nz} (${used.length} occupied), tile ${TILE}u (${TILE / UNITS_PER_M} m)\n` + + ` buildings ${extract.buildings.length - skipped} (+${skipped} skipped), roads ${extract.roads.length}\n` + + ` tris: buildings ${bldTris}, roads ${roadTris}; per-tile avg ${avgTri.toFixed(0)}, max verts ${maxV}, max idx ${maxI}\n` + + ` route: ${route.length} pts, ${(route[route.length - 1].s / UNITS_PER_M / 1000).toFixed(2)} km loop\n` + + ` pack: ${(buf.byteLength / 1024).toFixed(0)} KB`, + ); + if (maxV > 65535 || maxI > 65535) throw new Error("tile over u16 limit — shrink TILE"); + + writeSvg(svgPath, extract, route, { originX, originZ, nx, nz }); + console.log(`cook: preview → ${svgPath}`); +} + +function dir2(a: P2, b: P2): P2 { + const dx = b[0] - a[0]; + const dz = b[1] - a[1]; + const l = Math.hypot(dx, dz) || 1; + return [dx / l, dz / l]; +} + +function scale3(c: V3, s: number): V3 { + return [c[0] * s, c[1] * s, c[2] * s]; +} + +function packRGB(c: V3): number { + const r = Math.max(0, Math.min(255, Math.round(c[0] * 255))); + const g = Math.max(0, Math.min(255, Math.round(c[1] * 255))); + const b = Math.max(0, Math.min(255, Math.round(c[2] * 255))); + return (0xff000000 | (b << 16) | (g << 8) | r) >>> 0; +} + +function clampCheck(v: number) { + if (v < -32768 || v > 32767) throw new Error(`i16 overflow: ${v}`); +} + +function readFileSyncBytes(p: string): Buffer { + return require("node:fs").readFileSync(p); +} + +function repoDist(): string { + return new URL("../../../../dist/drive", import.meta.url).pathname; +} + +// ---- route building --------------------------------------------------- + +interface RoutePt { x: number; z: number; s: number; speed: number } + +function buildRoute(extract: Extract): RoutePt[] { + // Graph nodes = shared road points (keyed by rounded coordinate). + const key = (p: P2) => `${Math.round(p[0] * 10)},${Math.round(p[1] * 10)}`; + const usage = new Map(); + const drivable = extract.roads.filter((r) => ROADS[r.cls].drive && r.pts.length >= 2); + for (const r of drivable) { + for (const p of r.pts) usage.set(key(p), (usage.get(key(p)) ?? 0) + 1); + usage.set(key(r.pts[0]), (usage.get(key(r.pts[0])) ?? 0) + 1); + usage.set(key(r.pts[r.pts.length - 1]), (usage.get(key(r.pts[r.pts.length - 1])) ?? 0) + 1); + } + + interface Edge { a: string; b: string; pts: P2[]; len: number; cls: string; id: number } + const edges: Edge[] = []; + const adj = new Map(); + let eid = 0; + for (const r of drivable) { + let seg: P2[] = [r.pts[0]]; + for (let i = 1; i < r.pts.length; i++) { + seg.push(r.pts[i]); + const isNode = (usage.get(key(r.pts[i])) ?? 0) >= 2 || i === r.pts.length - 1; + if (isNode && seg.length >= 2) { + let len = 0; + for (let j = 1; j < seg.length; j++) len += Math.hypot(seg[j][0] - seg[j - 1][0], seg[j][1] - seg[j - 1][1]); + if (len > 1) { + const e: Edge = { a: key(seg[0]), b: key(seg[seg.length - 1]), pts: [...seg], len, cls: r.cls, id: eid++ }; + edges.push(e); + if (!adj.has(e.a)) adj.set(e.a, []); + if (!adj.has(e.b)) adj.set(e.b, []); + adj.get(e.a)!.push(edges.length - 1); + adj.get(e.b)!.push(edges.length - 1); + } + seg = [r.pts[i]]; + } + } + } + + // Waypoints → nearest real intersections, then shortest-path legs + // (Dijkstra over edge length) between consecutive waypoints, closed. + const mPerLon = 111320 * Math.cos((city.lat0 * Math.PI) / 180); + const nodePos = new Map(); + for (const e of edges) { + nodePos.set(e.a, e.pts[0]); + nodePos.set(e.b, e.pts[e.pts.length - 1]); + } + const nearestNode = (lat: number, lon: number): string => { + const px = (lon - city.lon0) * mPerLon; + const pz = -(lat - city.lat0) * 110574; + let best = ""; + let bestD = Infinity; + for (const [k, p] of nodePos) { + if ((adj.get(k)?.length ?? 0) < 3) continue; // real intersections only + const d = Math.hypot(p[0] - px, p[1] - pz); + if (d < bestD) { bestD = d; best = k; } + } + if (!best) throw new Error("route: no node near waypoint"); + return best; + }; + + const dijkstra = (from: string, to: string): { edge: number; fwd: boolean }[] => { + const dist = new Map([[from, 0]]); + const prev = new Map(); + const done = new Set(); + while (true) { + let cur = ""; + let curD = Infinity; + for (const [k, d] of dist) { + if (!done.has(k) && d < curD) { curD = d; cur = k; } + } + if (!cur) break; + if (cur === to) break; + done.add(cur); + for (const ei of adj.get(cur) ?? []) { + const e = edges[ei]; + const nb = e.a === cur ? e.b : e.a; + const nd = curD + e.len; + if (nd < (dist.get(nb) ?? Infinity)) { + dist.set(nb, nd); + prev.set(nb, { from: cur, edge: ei, fwd: e.a === cur }); + } + } + } + const leg: { edge: number; fwd: boolean }[] = []; + let n = to; + while (n !== from) { + const p = prev.get(n); + if (!p) return []; // unreachable + leg.unshift({ edge: p.edge, fwd: p.fwd }); + n = p.from; + } + return leg; + }; + + const stops = city.waypoints.map(([lat, lon]) => nearestNode(lat, lon)); + const path: { edge: number; fwd: boolean }[] = []; + for (let i = 0; i < stops.length; i++) { + const leg = dijkstra(stops[i], stops[(i + 1) % stops.length]); + if (!leg.length && stops[i] !== stops[(i + 1) % stops.length]) { + throw new Error(`route: waypoint ${i} unreachable`); + } + path.push(...leg); + } + + // Flatten to a polyline in units. + const pts: P2[] = []; + const speeds: number[] = []; + for (const step of path) { + const e = edges[step.edge]; + const p = step.fwd ? e.pts : [...e.pts].reverse(); + const spd = ROADS[e.cls].speed; + for (let i = pts.length ? 1 : 0; i < p.length; i++) { + pts.push([p[i][0] * UNITS_PER_M, p[i][1] * UNITS_PER_M]); + speeds.push(spd); + } + } + + // Cumulative arclength; drop micro-segments. + const route: RoutePt[] = []; + let s = 0; + for (let i = 0; i < pts.length; i++) { + if (i > 0) { + const d = Math.hypot(pts[i][0] - pts[i - 1][0], pts[i][1] - pts[i - 1][1]); + if (d < 2) continue; + s += d; + } + route.push({ x: pts[i][0], z: pts[i][1], s, speed: speeds[i] }); + } + return route; +} + +// ---- pack writer ------------------------------------------------------ + +function writePack(p: { + originX: number; + originZ: number; + nx: number; + nz: number; + tiles: (TileBuf | null)[]; + route: RoutePt[]; +}): Uint8Array { + const align16 = (n: number) => (n + 15) & ~15; + const HDR = 48; + const dirOff = HDR; + const dirLen = p.nx * p.nz * 32; + const routeOff = align16(dirOff + dirLen); + const routeLen = p.route.length * 16; + let cursor = align16(routeOff + routeLen); + + const tileSpans: { off: number; v: number; i: number; l: number; t: TileBuf | null }[] = []; + for (const t of p.tiles) { + if (!t || t.idx.length === 0) { + tileSpans.push({ off: 0, v: 0, i: 0, l: 0, t: null }); + continue; + } + const v = t.verts.length / 4; + const i = t.idx.length; + const l = t.lines.length / 4; + const bytes = align16(v * 12) + align16(i * 2) + align16(l * 12); + tileSpans.push({ off: cursor, v, i, l, t }); + cursor += align16(bytes); + } + + const buf = new ArrayBuffer(cursor); + const dv = new DataView(buf); + const u8 = new Uint8Array(buf); + + // Header. + u8.set([0x50, 0x44, 0x52, 0x56], 0); // "PDRV" + dv.setUint32(4, 1, true); + dv.setFloat32(8, UNITS_PER_M, true); + dv.setFloat32(12, TILE, true); + dv.setFloat32(16, p.originX, true); + dv.setFloat32(20, p.originZ, true); + dv.setUint32(24, p.nx, true); + dv.setUint32(28, p.nz, true); + dv.setUint32(32, dirOff, true); + dv.setUint32(36, routeOff, true); + dv.setUint32(40, p.route.length, true); + dv.setUint32(44, 0, true); + + // Tile directory. + for (let ti = 0; ti < tileSpans.length; ti++) { + const s = tileSpans[ti]; + const o = dirOff + ti * 32; + dv.setUint32(o + 0, s.off, true); + dv.setUint32(o + 4, s.v, true); + dv.setUint32(o + 8, s.i, true); + dv.setUint32(o + 12, s.l, true); + const t = s.t; + const mn = t ? t.min : [0, 0, 0]; + const mx = t ? t.max : [0, 0, 0]; + dv.setInt16(o + 16, mn[0], true); + dv.setInt16(o + 18, mn[1], true); + dv.setInt16(o + 20, mn[2], true); + dv.setInt16(o + 22, mx[0], true); + dv.setInt16(o + 24, mx[1], true); + dv.setInt16(o + 26, mx[2], true); + dv.setUint32(o + 28, 0, true); + } + + // Route. + for (let i = 0; i < p.route.length; i++) { + const o = routeOff + i * 16; + dv.setFloat32(o + 0, p.route[i].x, true); + dv.setFloat32(o + 4, p.route[i].z, true); + dv.setFloat32(o + 8, p.route[i].s, true); + dv.setFloat32(o + 12, p.route[i].speed, true); + } + + // Tile payloads: [verts][idx][lineVerts], each 16-aligned. + for (const s of tileSpans) { + if (!s.t) continue; + let o = s.off; + const t = s.t; + for (let vi = 0; vi < s.v; vi++) { + dv.setUint32(o + vi * 12, t.verts[vi * 4], true); + dv.setInt16(o + vi * 12 + 4, t.verts[vi * 4 + 1], true); + dv.setInt16(o + vi * 12 + 6, t.verts[vi * 4 + 2], true); + dv.setInt16(o + vi * 12 + 8, t.verts[vi * 4 + 3], true); + } + o = align16(o + s.v * 12); + for (let ii = 0; ii < s.i; ii++) dv.setUint16(o + ii * 2, t.idx[ii], true); + o = align16(o + s.i * 2); + for (let li = 0; li < s.l; li++) { + dv.setUint32(o + li * 12, t.lines[li * 4], true); + dv.setInt16(o + li * 12 + 4, t.lines[li * 4 + 1], true); + dv.setInt16(o + li * 12 + 6, t.lines[li * 4 + 2], true); + dv.setInt16(o + li * 12 + 8, t.lines[li * 4 + 3], true); + } + } + return u8; +} + +// ---- SVG preview ------------------------------------------------------ + +function writeSvg( + path: string, + extract: Extract, + route: RoutePt[], + grid: { originX: number; originZ: number; nx: number; nz: number }, +) { + const u = UNITS_PER_M; + const parts: string[] = []; + const vb = `${grid.originX} ${grid.originZ} ${grid.nx * TILE} ${grid.nz * TILE}`; + const svgH = Math.round((900 * grid.nz) / grid.nx); + parts.push( + ``, + ``, + ); + for (let tz = 0; tz <= grid.nz; tz++) + parts.push(``); + for (let tx = 0; tx <= grid.nx; tx++) + parts.push(``); + for (const r of extract.roads) { + const spec = ROADS[r.cls]; + const d = r.pts.map(([x, z], i) => `${i ? "L" : "M"}${(x * u).toFixed(0)} ${(z * u).toFixed(0)}`).join(""); + parts.push(``); + } + for (const b of extract.buildings) { + const d = b.ring.map(([x, z], i) => `${i ? "L" : "M"}${(x * u).toFixed(0)} ${(z * u).toFixed(0)}`).join("") + "Z"; + const bright = Math.min(255, 70 + b.h * 1.1); + parts.push(``); + } + const rd = route.map((p, i) => `${i ? "L" : "M"}${p.x.toFixed(0)} ${p.z.toFixed(0)}`).join(""); + parts.push(``); + parts.push(``); + parts.push(``); + Bun.write(path, parts.join("\n")); +} diff --git a/pocket3d/crates/pocket-drive/cooker/data/manhattan.json.gz b/pocket3d/crates/pocket-drive/cooker/data/manhattan.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e9901f488cc0231f5b7ebfe035dc1553a3e35980 GIT binary patch literal 228786 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

9Q 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 JGERYm3joFQ!N&jq literal 0 HcmV?d00001 diff --git a/pocket3d/crates/pocket-drive/shots/avenue.png b/pocket3d/crates/pocket-drive/shots/avenue.png new file mode 100644 index 0000000000000000000000000000000000000000..aa9e6fa03edf08fadc76ba26fc0343e38a3ded72 GIT binary patch literal 12956 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 z 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 Cskw*% literal 0 HcmV?d00001 diff --git a/pocket3d/crates/pocket-drive/shots/map.png b/pocket3d/crates/pocket-drive/shots/map.png new file mode 100644 index 0000000000000000000000000000000000000000..a339b8459593b75695d8cc9bde3938df49082265 GIT binary patch literal 133278 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̘_rOwxsbb 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 literal 0 HcmV?d00001 diff --git a/pocket3d/crates/pocket-drive/shots/turn.png b/pocket3d/crates/pocket-drive/shots/turn.png new file mode 100644 index 0000000000000000000000000000000000000000..ba70935a50eff54cd08e3a87d76a7bf14bda2d86 GIT binary patch literal 14546 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 f32 { + let r = s % total; + if r < 0.0 { r + total } else { r } +} + +/// Position + unit tangent at arclength `s` (binary search over the baked +/// cumulative arclengths). +pub fn route_sample(streamer: &Streamer, s: f32) -> ((f32, f32), (f32, f32)) { + let n = streamer.route_len(); + let (mut lo, mut hi) = (0usize, n - 1); + while hi - lo > 1 { + let mid = (lo + hi) / 2; + if streamer.route(mid).s <= s { + lo = mid; + } else { + hi = mid; + } + } + let a = streamer.route(lo); + let b = streamer.route(hi); + let seg = (b.s - a.s).max(1e-3); + let t = ((s - a.s) / seg).clamp(0.0, 1.0); + let (dx, dz) = (b.x - a.x, b.z - a.z); + let len = libm::sqrtf(dx * dx + dz * dz).max(1e-3); + ((a.x + dx * t, a.z + dz * t), (dx / len, dz / len)) +} + +/// Route speed-class factor at arclength `s`. +fn route_speed(streamer: &Streamer, s: f32) -> f32 { + let n = streamer.route_len(); + let (mut lo, mut hi) = (0usize, n - 1); + while hi - lo > 1 { + let mid = (lo + hi) / 2; + if streamer.route(mid).s <= s { + lo = mid; + } else { + hi = mid; + } + } + streamer.route(lo).speed.max(0.5) +} + +// ---- follower --------------------------------------------------------- + +pub struct Follower { + pub s: f32, + /// +1 drives the route forward, -1 backward (oncoming traffic). + pub dir: f32, + /// Lateral offset to the right of travel, units. + pub lane: f32, + pub base_speed: f32, // units/s + v: f32, +} + +impl Follower { + pub fn new(s: f32, dir: f32, lane: f32, base_speed: f32) -> Self { + Self { s, dir, lane, base_speed, v: 0.0 } + } + + /// Advance one tick. `throttle` scales the target speed (boost/brake); + /// corners are anticipated by comparing tangents a car-length ahead. + pub fn update(&mut self, streamer: &Streamer, total: f32, throttle: f32, dt: f32) { + let (_, t0) = route_sample(streamer, self.s); + let ahead = wrap_s(self.s + self.dir * 140.0, total); + let (_, t1) = route_sample(streamer, ahead); + let dot = (t0.0 * t1.0 + t0.1 * t1.1).clamp(-1.0, 1.0); + let ang = libm::acosf(dot); + let corner = (1.0 - 1.35 * ang).clamp(0.30, 1.0); + let class = route_speed(streamer, self.s); + let target = self.base_speed * class * corner * throttle; + self.v += (target - self.v) * 0.055; + self.s = wrap_s(self.s + self.dir * self.v * dt, total); + } + + /// World pose: position (with lane offset) and yaw facing travel. + pub fn pose(&self, streamer: &Streamer) -> (Vec3, f32) { + let (p, t) = route_sample(streamer, self.s); + let (tx, tz) = (t.0 * self.dir, t.1 * self.dir); + // Right of travel: (-tz, tx). + let x = p.0 + -tz * self.lane; + let z = p.1 + tx * self.lane; + let yaw = libm::atan2f(-tx, -tz); + (Vec3::new(x, 0.0, z), yaw) + } + + pub fn speed(&self) -> f32 { + self.v + } +} + +// ---- meshes ----------------------------------------------------------- + +const GLASS: [f32; 3] = [0.085, 0.105, 0.15]; +const TIRE: [f32; 3] = [0.045, 0.05, 0.06]; +const TAIL: [f32; 3] = [1.0, 0.16, 0.13]; +const HEAD: [f32; 3] = [1.0, 0.94, 0.78]; + +pub const PLAYER_BODY: [f32; 3] = [0.90, 0.92, 0.95]; +pub const TRAFFIC_BODIES: [[f32; 3]; 6] = [ + [0.44, 0.46, 0.50], + [0.24, 0.26, 0.32], + [0.48, 0.20, 0.19], + [0.20, 0.30, 0.44], + [0.58, 0.58, 0.60], + [0.30, 0.26, 0.22], +]; + +fn shade(c: [f32; 3], k: f32) -> u32 { + pack([c[0] * k, c[1] * k, c[2] * k]) +} + +/// Axis-aligned box as 12 triangles with per-face fake lighting. +fn push_box(v: &mut Vec, c: [f32; 3], lit: bool, center: [f32; 3], half: [f32; 3]) { + let [cx, cy, cz] = center; + let [hx, hy, hz] = half; + let p = |sx: f32, sy: f32, sz: f32| (cx + sx * hx, cy + sy * hy, cz + sz * hz); + // (corner signs per face, brightness) + let faces: [([[f32; 3]; 4], f32); 6] = [ + ([[-1., 1., -1.], [1., 1., -1.], [1., 1., 1.], [-1., 1., 1.]], 1.0), // top + ([[-1., -1., 1.], [1., -1., 1.], [1., -1., -1.], [-1., -1., -1.]], 0.38), // bottom + ([[1., -1., -1.], [1., -1., 1.], [1., 1., 1.], [1., 1., -1.]], 0.72), // +x + ([[-1., -1., 1.], [-1., -1., -1.], [-1., 1., -1.], [-1., 1., 1.]], 0.72), // -x + ([[-1., -1., -1.], [1., -1., -1.], [1., 1., -1.], [-1., 1., -1.]], 0.62), // -z front + ([[1., -1., 1.], [-1., -1., 1.], [-1., 1., 1.], [1., 1., 1.]], 0.58), // +z rear + ]; + for (corners, bright) in faces { + let color = if lit { shade(c, bright) } else { pack(c) }; + let q: [(f32, f32, f32); 4] = + core::array::from_fn(|i| p(corners[i][0], corners[i][1], corners[i][2])); + for &(a, b, cc) in &[(0usize, 1usize, 2usize), (0, 2, 3)] { + for &i in &[a, b, cc] { + v.push(Vert32 { color, x: q[i].0, y: q[i].1, z: q[i].2 }); + } + } + } +} + +/// A ~4.6 m sedan in 0.25 m units, nose toward -Z (yaw-0 forward). +pub fn build_car(body: [f32; 3]) -> Vec { + let mut v = Vec::new(); + push_box(&mut v, body, true, [0.0, 2.6, 0.2], [3.8, 1.8, 9.0]); // body + push_box(&mut v, GLASS, true, [0.0, 5.3, 0.8], [3.3, 1.05, 4.6]); // cabin + for &(x, z) in &[(-3.3, -5.4), (3.3, -5.4), (-3.3, 5.4), (3.3, 5.4)] { + push_box(&mut v, TIRE, true, [x, 1.4, z], [0.7, 1.4, 1.4]); + } + push_box(&mut v, TAIL, false, [0.0, 3.9, 9.15], [3.0, 0.30, 0.15]); // light bar + push_box(&mut v, HEAD, false, [-2.3, 3.4, -9.1], [1.0, 0.25, 0.15]); + push_box(&mut v, HEAD, false, [2.3, 3.4, -9.1], [1.0, 0.25, 0.15]); + v +} + +/// Draw a prebuilt car mesh (heap-resident, already written back). +pub unsafe fn draw_car(mesh: &[Vert32], pos: Vec3, yaw: f32) { + let model = Mat4::from_translation(pos) * Mat4::from_rotation_y(yaw); + sys::sceGuSetMatrix(sys::MatrixMode::Model, &to_psp_matrix(model)); + sys::sceGuDrawArray( + GuPrimitive::Triangles, + VTYPE_32, + mesh.len() as i32, + core::ptr::null(), + mesh.as_ptr() as *const core::ffi::c_void, + ); + sys::sceGuSetMatrix(sys::MatrixMode::Model, &to_psp_matrix(Mat4::IDENTITY)); +} diff --git a/pocket3d/crates/pocket-drive/src/main.rs b/pocket3d/crates/pocket-drive/src/main.rs new file mode 100644 index 00000000..6ff0906b --- /dev/null +++ b/pocket3d/crates/pocket-drive/src/main.rs @@ -0,0 +1,397 @@ +#![no_std] +#![no_main] + +//! pocket-drive: a Tesla-dash-style night drive through a real city on a +//! real PSP. Open map data (OpenStreetMap buildings + streets, cooked to +//! simple extruded meshes by `cooker/cook.ts`) streams in tile by tile +//! around a car that follows a baked route past real landmarks; new blocks +//! rise from the ground as they load. +//! +//! Pack source: a `.pdrv` on the memory stick (true sceIo async streaming) +//! or, when absent, a pack embedded at build time via DRIVE_PACK (loads are +//! then borrowed with a small simulated latency, keeping the choreography). +//! +//! Controls: analog = look around · CROSS = boost · SQUARE = brake · +//! START = pause. With DRIVE_CAP_START/N baked, presented frames dump to +//! ms0:/dc_cap/fNNNN.raw and the app exits — the gu-demo capture contract. + +extern crate alloc; + +mod car; +mod pack; +mod scene; +mod stream; + +use core::ffi::c_void; + +use alloc::vec::Vec; +use glam::Vec3; +use pocket3d_gu::{Camera3d, FramePool}; +use psp::sys::{ + self, ClearBuffer, CtrlButtons, CtrlMode, DisplayPixelFormat, DisplaySetBufSync, + GuContextType, GuState, GuSyncBehavior, GuSyncMode, IoOpenFlags, SceUid, TexturePixelFormat, +}; +use psp::vram_alloc::get_vram_allocator; +use psp::{Align16, BUF_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH}; + +use crate::stream::{Source, Streamer}; + +psp::module!("pocket_drive", 1, 1); + +static mut LIST: Align16<[u32; 0x40000]> = Align16([0; 0x40000]); + +// 16-byte aligned so the GE can read embedded tile payloads in place. +static PACK: Align16<[u8; include_bytes!(concat!(env!("OUT_DIR"), "/city.pdrv")).len()]> = + Align16(*include_bytes!(concat!(env!("OUT_DIR"), "/city.pdrv"))); + +static CAP_START: &str = env!("DRIVE_CAP_START"); +static CAP_N: &str = env!("DRIVE_CAP_N"); + +const PACK_PATHS: [&[u8]; 3] = [ + b"ms0:/pocket-drive/manhattan.pdrv\0", + b"ms0:/PSP/GAME/pocket-drive/manhattan.pdrv\0", + b"host0:/dist/drive/manhattan.pdrv\0", +]; + +const INTRO_FRAMES: u32 = 220; +const INTRO_BLEND: u32 = 70; +const DRIVE_START: u32 = 150; +const CHASE_DIST: f32 = 46.0; +const CHASE_HEIGHT: f32 = 18.0; +const CHASE_PITCH: f32 = -0.12; +const TRAFFIC: usize = 16; + +fn cap_window() -> (u32, u32) { + let parse = |s: &str, d: u32| s.parse::().unwrap_or(d); + (parse(CAP_START, u32::MAX), parse(CAP_N, 0)) +} + +fn psp_main() { + unsafe { + psp::enable_home_button(); + init_graphics(); + sys::sceCtrlSetSamplingCycle(0); + sys::sceCtrlSetSamplingMode(CtrlMode::Analog); + + let mut streamer = match open_pack() { + Ok(s) => s, + Err(e) => halt(e), + }; + let total = streamer.route(streamer.route_len() - 1).s; + + // Cars: player on the ribbon line, traffic staggered both ways. + let player_mesh = car::build_car(car::PLAYER_BODY); + let traffic_meshes: Vec> = car::TRAFFIC_BODIES + .iter() + .map(|&c| car::build_car(c)) + .collect(); + pocket3d_gu::writeback(vert_bytes(&player_mesh)); + for m in &traffic_meshes { + pocket3d_gu::writeback(vert_bytes(m)); + } + let mut player = car::Follower::new(0.0, 1.0, 0.0, 64.0); + let mut traffic: Vec = (0..TRAFFIC) + .map(|i| { + let dir = if i % 2 == 0 { 1.0 } else { -1.0 }; + let s0 = total * (i as f32 + 0.4) / TRAFFIC as f32; + car::Follower::new(s0, dir, 7.0, 46.0 + (i % 4) as f32 * 5.0) + }) + .collect(); + + let mut pool = FramePool::new(); + let (cap_start, cap_n) = cap_window(); + let mut frame: u32 = 0; + let mut paused = false; + let mut prev_buttons = CtrlButtons::empty(); + let mut cam_yaw: f32 = 0.0; + let mut look_yaw: f32 = 0.0; + let mut look_pitch: f32 = 0.0; + let dt = 1.0 / 60.0; + + loop { + // ---- input ---- + let mut pad = sys::SceCtrlData::default(); + sys::sceCtrlReadBufferPositive(&mut pad, 1); + if pad.buttons.contains(CtrlButtons::START) + && !prev_buttons.contains(CtrlButtons::START) + { + paused = !paused; + } + prev_buttons = pad.buttons; + let throttle = if pad.buttons.contains(CtrlButtons::CROSS) { + 1.9 + } else if pad.buttons.contains(CtrlButtons::SQUARE) { + 0.22 + } else { + 1.0 + }; + let ax = (pad.lx as f32 - 128.0) / 127.0; + let ay = (pad.ly as f32 - 128.0) / 127.0; + let look_x = if ax.abs() > 0.18 { ax } else { 0.0 }; + let look_y = if ay.abs() > 0.18 { ay } else { 0.0 }; + look_yaw += (look_x * -1.1 - look_yaw) * 0.10; + look_pitch += (look_y * -0.26 - look_pitch) * 0.10; + + // ---- simulate ---- + let driving = frame >= DRIVE_START && !paused; + if driving { + player.update(&streamer, total, throttle, dt); + for t in traffic.iter_mut() { + t.update(&streamer, total, 1.0, dt); + } + } + let (car_pos, car_yaw) = player.pose(&streamer); + + // ---- camera ---- + let cam = camera(frame, car_pos, car_yaw, &mut cam_yaw, look_yaw, look_pitch); + + // ---- stream ---- + let (hx, hz) = (-libm::sinf(car_yaw), -libm::cosf(car_yaw)); + streamer.update(car_pos.x, car_pos.z, hx, hz, frame); + + // ---- record ---- + sys::sceGuStart(GuContextType::Direct, core::ptr::addr_of_mut!(LIST) as *mut c_void); + pocket3d_gu::begin_3d(&cam); + scene::pass_begin(); + scene::backdrop(&mut pool, &cam); + let stats = scene::draw_tiles(&streamer, &cam, frame); + scene::draw_ribbon(&mut pool, &streamer, player.s, total); + for (i, t) in traffic.iter().enumerate() { + let (p, yaw) = t.pose(&streamer); + car::draw_car(&traffic_meshes[i % traffic_meshes.len()], p, yaw); + } + car::draw_car(&player_mesh, car_pos, car_yaw); + scene::pass_end(); + pocket3d_gu::end_3d(); + sys::sceGuFinish(); + sys::sceGuSync(GuSyncMode::Finish, GuSyncBehavior::Wait); + sys::sceDisplayWaitVblankStart(); + sys::sceGuSwapBuffers(); + pool.reset(); + + // On-screen stats corrupt captures (dprintln repaints the whole + // debug console into the framebuffer) — opt in via `--features + // stats` for PSPLINK/bring-up sessions only. + #[cfg(feature = "stats")] + if frame % 300 == 0 { + psp::dprintln!( + "[drive] f={} tiles={} tris={} resident={} loads={} v={}", + frame, + stats.tiles, + stats.tris, + streamer.resident, + streamer.loads, + player.speed() as i32 + ); + } + #[cfg(not(feature = "stats"))] + let _ = &stats; + + if frame >= cap_start && frame < cap_start.saturating_add(cap_n) { + cap_dump(frame - cap_start); + if frame + 1 == cap_start + cap_n { + sys::sceKernelExitGame(); + } + } + frame = frame.wrapping_add(1); + } + } +} + +/// Intro orbit around the parked car, blending into the chase camera as it +/// pulls away; afterwards a smoothed chase with analog look-around. +fn camera( + frame: u32, + car_pos: Vec3, + car_yaw: f32, + cam_yaw: &mut f32, + look_yaw: f32, + look_pitch: f32, +) -> Camera3d { + // Chase pose (always computed so the blend target is live). + let delta = wrap_angle(car_yaw - *cam_yaw); + *cam_yaw += delta * 0.075; + let yaw = *cam_yaw + look_yaw; + let fwd = Vec3::new(-libm::sinf(yaw), 0.0, -libm::cosf(yaw)); + let chase_pos = car_pos - fwd * CHASE_DIST + Vec3::new(0.0, CHASE_HEIGHT, 0.0); + let chase = (chase_pos, yaw, CHASE_PITCH + look_pitch); + + let cam = if frame < INTRO_FRAMES { + // Slow orbit, drifting down toward the chase height. + let t = frame as f32 / INTRO_FRAMES as f32; + let a = 2.4 + frame as f32 * 0.006; + let radius = 95.0 - 25.0 * t; + let height = 46.0 - 20.0 * t; + let pos = car_pos + Vec3::new(libm::sinf(a) * radius, height, libm::cosf(a) * radius); + let d = car_pos + Vec3::new(0.0, 6.0, 0.0) - pos; + let dxz = libm::sqrtf(d.x * d.x + d.z * d.z); + let orbit = (pos, libm::atan2f(-d.x, -d.z), libm::atan2f(d.y, dxz)); + *cam_yaw = car_yaw; // keep the chase yaw settled for the handoff + let blend_start = INTRO_FRAMES - INTRO_BLEND; + if frame >= blend_start { + let bt = (frame - blend_start) as f32 / INTRO_BLEND as f32; + let bt = bt * bt * (3.0 - 2.0 * bt); + ( + orbit.0.lerp(chase.0, bt), + orbit.1 + wrap_angle(chase.1 - orbit.1) * bt, + orbit.2 + (chase.2 - orbit.2) * bt, + ) + } else { + orbit + } + } else { + chase + }; + + Camera3d { + pos: cam.0, + yaw: cam.1, + pitch: cam.2, + fov_y: 72f32.to_radians(), + ..Camera3d::default() + } +} + +fn wrap_angle(a: f32) -> f32 { + let mut a = a; + while a > core::f32::consts::PI { + a -= core::f32::consts::TAU; + } + while a < -core::f32::consts::PI { + a += core::f32::consts::TAU; + } + a +} + +fn vert_bytes(v: &[scene::Vert32]) -> &[u8] { + unsafe { core::slice::from_raw_parts(v.as_ptr() as *const u8, core::mem::size_of_val(v)) } +} + +/// Prefer a memory-stick pack (real streaming); fall back to the embedded +/// one. Leaks the meta prefix — it lives for the whole run anyway. +unsafe fn open_pack() -> Result { + for path in PACK_PATHS { + let fd = sys::sceIoOpen(path.as_ptr(), IoOpenFlags::RD_ONLY, 0o444); + if fd.0 < 0 { + continue; + } + let mut hdr = [0u8; pack::HEADER]; + if sys::sceIoRead(fd, hdr.as_mut_ptr() as *mut c_void, pack::HEADER as u32) + != pack::HEADER as i32 + { + sys::sceIoClose(fd); + continue; + } + let info = pack::parse_header(&hdr)?; + let len = pack::meta_len(&info); + let mut meta = pack::AlignedBuf::new(len); + sys::sceIoLseek32(fd, 0, sys::IoWhence::Set); + if sys::sceIoRead(fd, meta.as_mut_ptr() as *mut c_void, len as u32) != len as i32 { + sys::sceIoClose(fd); + continue; + } + let meta_slice: &'static [u8] = + core::slice::from_raw_parts(meta.as_mut_ptr(), len); + core::mem::forget(meta); + psp::dprintln!("[drive] streaming from file pack"); + return Ok(Streamer::new(info, meta_slice, Source::File(fd))); + } + + let data: &'static [u8] = &PACK.0; + if data.is_empty() { + return Err("no city pack: put manhattan.pdrv on ms0:/pocket-drive/ or build with DRIVE_PACK"); + } + pocket3d_gu::writeback(data); + let info = pack::parse_header(data)?; + psp::dprintln!("[drive] using embedded pack"); + Ok(Streamer::new(info, data, Source::Embedded(data))) +} + +unsafe fn init_graphics() { + let allocator = match get_vram_allocator() { + Ok(a) => a, + Err(_) => halt("vram allocator"), + }; + let fbp0 = allocator + .alloc_texture_pixels(BUF_WIDTH, SCREEN_HEIGHT, TexturePixelFormat::Psm8888) + .as_mut_ptr_from_zero(); + let fbp1 = allocator + .alloc_texture_pixels(BUF_WIDTH, SCREEN_HEIGHT, TexturePixelFormat::Psm8888) + .as_mut_ptr_from_zero(); + let zbp = allocator + .alloc_texture_pixels(BUF_WIDTH, SCREEN_HEIGHT, TexturePixelFormat::Psm4444) + .as_mut_ptr_from_zero(); + + sys::sceGuInit(); + sys::sceGuStart(GuContextType::Direct, core::ptr::addr_of_mut!(LIST) as *mut c_void); + sys::sceGuDrawBuffer(DisplayPixelFormat::Psm8888, fbp0 as _, BUF_WIDTH as i32); + sys::sceGuDispBuffer( + SCREEN_WIDTH as i32, + SCREEN_HEIGHT as i32, + fbp1 as _, + BUF_WIDTH as i32, + ); + sys::sceGuDepthBuffer(zbp as _, BUF_WIDTH as i32); + sys::sceGuOffset(2048 - (SCREEN_WIDTH / 2), 2048 - (SCREEN_HEIGHT / 2)); + sys::sceGuViewport(2048, 2048, SCREEN_WIDTH as i32, SCREEN_HEIGHT as i32); + sys::sceGuScissor(0, 0, SCREEN_WIDTH as i32, SCREEN_HEIGHT as i32); + sys::sceGuEnable(GuState::ScissorTest); + sys::sceGuShadeModel(psp::sys::ShadingModel::Smooth); + sys::sceGuClearColor(0xff000000); + sys::sceGuClearDepth(0); + sys::sceGuClear(ClearBuffer::COLOR_BUFFER_BIT | ClearBuffer::DEPTH_BUFFER_BIT); + sys::sceGuFinish(); + sys::sceGuSync(GuSyncMode::Finish, GuSyncBehavior::Wait); + sys::sceDisplayWaitVblankStart(); + sys::sceGuDisplay(true); +} + +/// Dump the display framebuffer to ms0:/dc_cap/fNNNN.raw (the shared +/// PocketJS capture layout; PPSSPP maps ms0: to its memstick root). +unsafe fn cap_dump(idx: u32) { + if idx == 0 { + sys::sceIoMkdir(b"ms0:/dc_cap\0".as_ptr(), 0o777); + } + let mut name: [u8; 22] = *b"ms0:/dc_cap/f0000.raw\0"; + let mut v = idx; + let mut i = 16usize; + loop { + name[i] = b'0' + (v % 10) as u8; + v /= 10; + if i == 13 { + break; + } + i -= 1; + } + let mut top: *mut c_void = core::ptr::null_mut(); + let mut bw: usize = 0; + let mut fmt = DisplayPixelFormat::Psm8888; + sys::sceDisplayGetFrameBuf(&mut top, &mut bw, &mut fmt, DisplaySetBufSync::Immediate); + let mut addr = top as u32; + if addr < 0x0400_0000 { + addr += 0x0400_0000; + } + addr |= 0x4000_0000; + let fd = sys::sceIoOpen( + name.as_ptr(), + IoOpenFlags::CREAT | IoOpenFlags::WR_ONLY | IoOpenFlags::TRUNC, + 0o777, + ); + if fd.0 >= 0 { + sys::sceIoWrite(fd, addr as *const c_void, 512 * 272 * 4); + sys::sceIoClose(fd); + } +} + +unsafe fn halt(msg: &str) -> ! { + psp::dprintln!("[drive halt] {}", msg); + loop { + sys::sceDisplayWaitVblankStart(); + } +} + +// Keep the unused-field lint honest: SceUid is only constructed by sceIoOpen. +#[allow(dead_code)] +fn _uid_assert(u: SceUid) -> i32 { + u.0 +} diff --git a/pocket3d/crates/pocket-drive/src/pack.rs b/pocket3d/crates/pocket-drive/src/pack.rs new file mode 100644 index 00000000..a97f3c1a --- /dev/null +++ b/pocket3d/crates/pocket-drive/src/pack.rs @@ -0,0 +1,152 @@ +//! `.pdrv` city pack: header + tile directory + route, then per-tile +//! payloads of GE-ready geometry. All offsets 16-aligned, little-endian +//! (cooked by `cooker/cook.ts`; this reader and that writer must agree). +//! +//! Tile payload layout: `[tri verts][pad16][u16 indices][pad16][line verts]`. +//! Vertex = `{color: u32 ABGR, x,y,z: i16, pad: u16}` (12 B), tile-local, +//! riding the GE's 16-bit ÷32768 normalization (undone in the model matrix). + +use alloc::alloc::{alloc, dealloc, Layout}; +use core::slice; + +pub const VERT_SIZE: usize = 12; +pub const DIR_ENTRY: usize = 32; +pub const ROUTE_ENTRY: usize = 16; +pub const HEADER: usize = 48; + +#[derive(Clone, Copy, Debug)] +pub struct PackInfo { + pub tile_size: f32, + pub origin_x: f32, + pub origin_z: f32, + pub nx: usize, + pub nz: usize, + pub dir_off: usize, + pub route_off: usize, + pub route_count: usize, +} + +#[derive(Clone, Copy, Debug, Default)] +pub struct TileDir { + pub off: usize, + pub vcount: usize, + pub icount: usize, + pub lcount: usize, + pub min: [i16; 3], + pub max: [i16; 3], +} + +#[derive(Clone, Copy, Debug)] +pub struct RoutePt { + pub x: f32, + pub z: f32, + pub s: f32, + pub speed: f32, +} + +fn u32le(b: &[u8], o: usize) -> u32 { + u32::from_le_bytes([b[o], b[o + 1], b[o + 2], b[o + 3]]) +} +fn f32le(b: &[u8], o: usize) -> f32 { + f32::from_bits(u32le(b, o)) +} +fn i16le(b: &[u8], o: usize) -> i16 { + i16::from_le_bytes([b[o], b[o + 1]]) +} + +pub fn parse_header(b: &[u8]) -> Result { + if b.len() < HEADER || &b[0..4] != b"PDRV" { + return Err("bad pack magic"); + } + if u32le(b, 4) != 1 { + return Err("bad pack version"); + } + Ok(PackInfo { + tile_size: f32le(b, 12), + origin_x: f32le(b, 16), + origin_z: f32le(b, 20), + nx: u32le(b, 24) as usize, + nz: u32le(b, 28) as usize, + dir_off: u32le(b, 32) as usize, + route_off: u32le(b, 36) as usize, + route_count: u32le(b, 40) as usize, + }) +} + +/// Meta prefix length (header + directory + route) — what a file source +/// must read up front. +pub fn meta_len(info: &PackInfo) -> usize { + info.route_off + info.route_count * ROUTE_ENTRY +} + +pub fn tile_dir(meta: &[u8], info: &PackInfo, idx: usize) -> TileDir { + let o = info.dir_off + idx * DIR_ENTRY; + TileDir { + off: u32le(meta, o) as usize, + vcount: u32le(meta, o + 4) as usize, + icount: u32le(meta, o + 8) as usize, + lcount: u32le(meta, o + 12) as usize, + min: [i16le(meta, o + 16), i16le(meta, o + 18), i16le(meta, o + 20)], + max: [i16le(meta, o + 22), i16le(meta, o + 24), i16le(meta, o + 26)], + } +} + +pub fn route_pt(meta: &[u8], info: &PackInfo, idx: usize) -> RoutePt { + let o = info.route_off + idx * ROUTE_ENTRY; + RoutePt { + x: f32le(meta, o), + z: f32le(meta, o + 4), + s: f32le(meta, o + 8), + speed: f32le(meta, o + 12), + } +} + +const fn align16(n: usize) -> usize { + (n + 15) & !15 +} + +/// Byte length of one tile's payload. +pub fn tile_len(d: &TileDir) -> usize { + align16(d.vcount * VERT_SIZE) + align16(d.icount * 2) + align16(d.lcount * VERT_SIZE) +} + +/// Views into a loaded tile payload: (tri verts, indices, line verts). +pub fn tile_views<'a>(d: &TileDir, data: &'a [u8]) -> (&'a [u8], &'a [u8], &'a [u8]) { + let v_end = d.vcount * VERT_SIZE; + let i_off = align16(v_end); + let i_end = i_off + d.icount * 2; + let l_off = align16(i_end); + let l_end = l_off + d.lcount * VERT_SIZE; + (&data[0..v_end], &data[i_off..i_end], &data[l_off..l_end]) +} + +/// 16-aligned heap buffer the GE can read in place (after writeback). +pub struct AlignedBuf { + ptr: *mut u8, + len: usize, +} + +impl AlignedBuf { + pub fn new(len: usize) -> Self { + let layout = Layout::from_size_align(len.max(16), 16).unwrap(); + let ptr = unsafe { alloc(layout) }; + assert!(!ptr.is_null(), "pack buffer alloc failed"); + Self { ptr, len } + } + pub fn as_slice(&self) -> &[u8] { + unsafe { slice::from_raw_parts(self.ptr, self.len) } + } + pub fn as_mut_ptr(&mut self) -> *mut u8 { + self.ptr + } +} + +impl Drop for AlignedBuf { + fn drop(&mut self) { + let layout = Layout::from_size_align(self.len.max(16), 16).unwrap(); + unsafe { dealloc(self.ptr, layout) }; + } +} + +// The GE never writes; single-threaded EBOOT. +unsafe impl Send for AlignedBuf {} diff --git a/pocket3d/crates/pocket-drive/src/scene.rs b/pocket3d/crates/pocket-drive/src/scene.rs new file mode 100644 index 00000000..23ffa65d --- /dev/null +++ b/pocket3d/crates/pocket-drive/src/scene.rs @@ -0,0 +1,270 @@ +//! Scene pass: night-navigation backdrop, streamed city tiles, and the +//! route ribbon. Everything here is untextured vertex color — texturing is +//! disabled once for the whole 3D pass (`pass_begin`) instead of per draw. + +use core::ffi::c_void; + +use glam::{Mat4, Vec3}; +use pocket3d_gu::{to_psp_matrix, Camera3d, FramePool}; +use psp::sys::{self, ClearBuffer, GuPrimitive, GuState, VertexType}; + +use crate::car::{route_sample, wrap_s}; +use crate::stream::Streamer; + +// ---- palette ---------------------------------------------------------- + +pub const GROUND: [f32; 3] = [0.055, 0.068, 0.10]; +pub const HAZE: [f32; 3] = [0.165, 0.205, 0.30]; +pub const SKY_TOP: [f32; 3] = [0.03, 0.04, 0.085]; +pub const ROUTE_BLUE: [f32; 3] = [0.28, 0.62, 1.0]; + +/// Fog range in units (0.25 m each): geometry fades into the haze band. +pub const FOG_NEAR: f32 = 1100.0; +pub const FOG_FAR: f32 = 2500.0; +/// Tiles farther than this (center distance) are skipped entirely. +pub const FAR_CULL: f32 = 2750.0; + +pub fn pack(c: [f32; 3]) -> u32 { + let r = (c[0].clamp(0.0, 1.0) * 255.0) as u32; + let g = (c[1].clamp(0.0, 1.0) * 255.0) as u32; + let b = (c[2].clamp(0.0, 1.0) * 255.0) as u32; + 0xff00_0000 | (b << 16) | (g << 8) | r +} + +fn mix(a: [f32; 3], b: [f32; 3], t: f32) -> [f32; 3] { + [ + a[0] + (b[0] - a[0]) * t, + a[1] + (b[1] - a[1]) * t, + a[2] + (b[2] - a[2]) * t, + ] +} + +// ---- vertex layouts --------------------------------------------------- + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct Vert2d { + color: u32, + x: i16, + y: i16, + z: i16, + _pad: i16, +} + +const VTYPE_2D: VertexType = VertexType::from_bits_truncate( + VertexType::COLOR_8888.bits() | VertexType::VERTEX_16BIT.bits() | VertexType::TRANSFORM_2D.bits(), +); + +/// Tile geometry: the cooked 12-byte `{color, i16 xyz}` vertex, indexed. +const VTYPE_TILE: VertexType = VertexType::from_bits_truncate( + VertexType::COLOR_8888.bits() + | VertexType::VERTEX_16BIT.bits() + | VertexType::INDEX_16BIT.bits() + | VertexType::TRANSFORM_3D.bits(), +); +const VTYPE_LINE: VertexType = VertexType::from_bits_truncate( + VertexType::COLOR_8888.bits() | VertexType::VERTEX_16BIT.bits() | VertexType::TRANSFORM_3D.bits(), +); + +/// CPU-built float geometry (ribbon, cars). +#[repr(C)] +#[derive(Clone, Copy)] +pub struct Vert32 { + pub color: u32, + pub x: f32, + pub y: f32, + pub z: f32, +} + +pub const VTYPE_32: VertexType = VertexType::from_bits_truncate( + VertexType::COLOR_8888.bits() | VertexType::VERTEX_32BITF.bits() | VertexType::TRANSFORM_3D.bits(), +); + +// ---- pass state ------------------------------------------------------- + +/// After `begin_3d`: untextured pass, fog configured. Fog stays enabled for +/// all world-space draws and is disabled again in `pass_end`. +pub unsafe fn pass_begin() { + sys::sceGuDisable(GuState::Texture2D); + sys::sceGuFog(FOG_NEAR, FOG_FAR, pack(HAZE)); + sys::sceGuEnable(GuState::Fog); +} + +pub unsafe fn pass_end() { + sys::sceGuDisable(GuState::Fog); + sys::sceGuEnable(GuState::Texture2D); +} + +// ---- backdrop --------------------------------------------------------- + +/// Clear, then fill the screen with the night gradient: sky down to a haze +/// band at the horizon row, ground shading darker toward the bottom. The +/// ground half is what reads as an infinite dark ground plane — zero +/// triangles of real geometry, and streamed tiles z-test over it. +pub unsafe fn backdrop(pool: &mut FramePool, cam: &Camera3d) { + sys::sceGuClearColor(pack(GROUND)); + sys::sceGuClearDepth(0); + sys::sceGuClear(ClearBuffer::COLOR_BUFFER_BIT | ClearBuffer::DEPTH_BUFFER_BIT); + + let half_fov_tan = libm::tanf(cam.fov_y * 0.5); + let horizon = 136.0 * (1.0 + libm::tanf(cam.pitch) / half_fov_tan); + let h = horizon.clamp(28.0, 244.0) as i16; + + // Sky gradient reaches the haze a little above the horizon so distant + // fogged buildings melt into the band instead of silhouetting. + let quads: [(i16, i16, [f32; 3], [f32; 3]); 3] = [ + (0, h - 22, SKY_TOP, mix(HAZE, SKY_TOP, 0.15)), + (h - 22, h, mix(HAZE, SKY_TOP, 0.15), HAZE), + (h, 272, mix(HAZE, GROUND, 0.35), GROUND), + ]; + + sys::sceGuDisable(GuState::DepthTest); + sys::sceGuDisable(GuState::Fog); + for (y0, y1, top, bottom) in quads { + if y1 <= y0 { + continue; + } + let (ct, cb) = (pack(top), pack(bottom)); + let strip = [ + Vert2d { color: ct, x: 0, y: y0, z: 0, _pad: 0 }, + Vert2d { color: ct, x: 480, y: y0, z: 0, _pad: 0 }, + Vert2d { color: cb, x: 0, y: y1, z: 0, _pad: 0 }, + Vert2d { color: cb, x: 480, y: y1, z: 0, _pad: 0 }, + ]; + let bytes = core::slice::from_raw_parts( + strip.as_ptr() as *const u8, + core::mem::size_of_val(&strip), + ); + let data = pool.upload(bytes); + sys::sceGuDrawArray( + GuPrimitive::TriangleStrip, + VTYPE_2D, + 4, + core::ptr::null(), + data as *const c_void, + ); + } + sys::sceGuEnable(GuState::Fog); + sys::sceGuEnable(GuState::DepthTest); +} + +// ---- tiles ------------------------------------------------------------ + +pub struct DrawStats { + pub tiles: u32, + pub tris: u32, +} + +/// Draw every resident tile that survives distance + frustum culling. +/// A tile still rising is drawn with a squashed Y in its model matrix — +/// the streaming choreography. +pub unsafe fn draw_tiles(streamer: &Streamer, cam: &Camera3d, frame: u32) -> DrawStats { + let frustum = cam.frustum(); + let ts = streamer.info.tile_size; + let mut stats = DrawStats { tiles: 0, tris: 0 }; + + for tz in 0..streamer.info.nz { + for tx in 0..streamer.info.nx { + let idx = tz * streamer.info.nx + tx; + let Some((verts, indices, lines, rise)) = streamer.ready(idx, frame) else { + continue; + }; + let ox = streamer.info.origin_x + tx as f32 * ts; + let oz = streamer.info.origin_z + tz as f32 * ts; + let cx = ox + ts * 0.5 - cam.pos.x; + let cz = oz + ts * 0.5 - cam.pos.z; + if cx * cx + cz * cz > FAR_CULL * FAR_CULL { + continue; + } + let d = streamer.dir(idx); + let mins = Vec3::new(ox + d.min[0] as f32, d.min[1] as f32, oz + d.min[2] as f32); + let maxs = Vec3::new(ox + d.max[0] as f32, d.max[1] as f32, oz + d.max[2] as f32); + if !frustum.intersects_aabb(mins, maxs) { + continue; + } + + let model = Mat4::from_translation(Vec3::new(ox, 0.0, oz)) + * Mat4::from_scale(Vec3::new(32768.0, 32768.0 * rise, 32768.0)); + sys::sceGuSetMatrix(sys::MatrixMode::Model, &to_psp_matrix(model)); + + if !indices.is_empty() { + sys::sceGuDrawArray( + GuPrimitive::Triangles, + VTYPE_TILE, + (indices.len() / 2) as i32, + indices.as_ptr() as *const c_void, + verts.as_ptr() as *const c_void, + ); + stats.tris += indices.len() as u32 / 6; + } + if !lines.is_empty() { + sys::sceGuDrawArray( + GuPrimitive::Lines, + VTYPE_LINE, + (lines.len() / 12) as i32, + core::ptr::null(), + lines.as_ptr() as *const c_void, + ); + } + stats.tiles += 1; + } + } + sys::sceGuSetMatrix(sys::MatrixMode::Model, &to_psp_matrix(Mat4::IDENTITY)); + stats +} + +// ---- route ribbon ----------------------------------------------------- + +const RIBBON_BACK: f32 = 60.0; // units behind the car +const RIBBON_AHEAD: f32 = 1400.0; // units ahead +const RIBBON_HALF: f32 = 3.0; +const RIBBON_Y: f32 = 2.6; +const RIBBON_STEP: f32 = 40.0; + +/// The Tesla-navigation blue path: a flat strip hugging the route from just +/// behind the car to a few hundred meters ahead, rebuilt each frame. +pub unsafe fn draw_ribbon(pool: &mut FramePool, streamer: &Streamer, car_s: f32, total: f32) { + let color = pack(ROUTE_BLUE); + let mut verts: [Vert32; 256] = [Vert32 { color, x: 0.0, y: 0.0, z: 0.0 }; 256]; + let mut n = 0usize; + + let steps = ((RIBBON_BACK + RIBBON_AHEAD) / RIBBON_STEP) as i32; + let mut prev: Option<(f32, f32, f32, f32)> = None; // lx, lz, rx, rz + for i in 0..=steps { + let s = wrap_s(car_s - RIBBON_BACK + i as f32 * RIBBON_STEP, total); + let (pos, tan) = route_sample(streamer, s); + // Right of the tangent: (-tz, tx). + let (rx, rz) = (-tan.1, tan.0); + let l = (pos.0 + rx * RIBBON_HALF, pos.1 + rz * RIBBON_HALF); + let r = (pos.0 - rx * RIBBON_HALF, pos.1 - rz * RIBBON_HALF); + if let Some((plx, plz, prx, przz)) = prev { + if n + 6 <= verts.len() { + let quad = [ + (plx, plz), + (prx, przz), + (l.0, l.1), + (prx, przz), + (r.0, r.1), + (l.0, l.1), + ]; + for (x, z) in quad { + verts[n] = Vert32 { color, x, y: RIBBON_Y, z }; + n += 1; + } + } + } + prev = Some((l.0, l.1, r.0, r.1)); + } + if n == 0 { + return; + } + let bytes = core::slice::from_raw_parts(verts.as_ptr() as *const u8, n * 16); + let data = pool.upload(bytes); + sys::sceGuDrawArray( + GuPrimitive::Triangles, + VTYPE_32, + n as i32, + core::ptr::null(), + data as *const c_void, + ); +} diff --git a/pocket3d/crates/pocket-drive/src/stream.rs b/pocket3d/crates/pocket-drive/src/stream.rs new file mode 100644 index 00000000..e35fde38 --- /dev/null +++ b/pocket3d/crates/pocket-drive/src/stream.rs @@ -0,0 +1,251 @@ +//! Tile streamer: keeps a ring of tiles resident around the car, loading at +//! most one tile per frame — from the memory stick via async sceIo when the +//! pack is a file, or by borrowing the embedded pack (with a simulated +//! latency so the load choreography stays visible and deterministic). +//! +//! Load order is nearest-ring-first with a bias toward tiles ahead of the +//! car, so driving into fresh blocks streams the skyline in before it +//! matters. Newly ready tiles ride a rise-from-the-ground animation +//! (`rise()`), which is what makes streaming legible on screen. + +use alloc::vec::Vec; +use core::ffi::c_void; + +use psp::sys::{self, IoWhence, SceUid}; + +use crate::pack::{self, AlignedBuf, PackInfo, TileDir}; + +/// Chebyshev tile radius kept resident (and loaded on demand). +pub const KEEP: i32 = 5; +/// Radius beyond which resident tiles are dropped (hysteresis vs KEEP). +pub const EVICT: i32 = 6; +/// Frames of the rise-from-ground animation. +pub const RISE_FRAMES: u32 = 30; +/// Simulated load latency for the embedded-pack source, in frames. +const EMBED_LATENCY: u32 = 5; + +pub enum Source { + Embedded(&'static [u8]), + File(SceUid), +} + +enum TileData { + Owned(AlignedBuf), + Borrowed(&'static [u8]), +} + +impl TileData { + fn bytes(&self) -> &[u8] { + match self { + TileData::Owned(b) => b.as_slice(), + TileData::Borrowed(s) => s, + } + } +} + +enum TileState { + Vacant, + Loading, + Ready { data: TileData, born: u32 }, +} + +struct InFlight { + idx: usize, + buf: AlignedBuf, +} + +pub struct Streamer { + pub info: PackInfo, + meta: &'static [u8], + source: Source, + states: Vec, + inflight: Option, + embed_pending: Option<(usize, u32)>, + pub loads: u32, + pub resident: u32, +} + +impl Streamer { + pub fn new(info: PackInfo, meta: &'static [u8], source: Source) -> Self { + let mut states = Vec::new(); + states.resize_with(info.nx * info.nz, || TileState::Vacant); + Self { + info, + meta, + source, + states, + inflight: None, + embed_pending: None, + loads: 0, + resident: 0, + } + } + + pub fn dir(&self, idx: usize) -> TileDir { + pack::tile_dir(self.meta, &self.info, idx) + } + + pub fn route_len(&self) -> usize { + self.info.route_count + } + + pub fn route(&self, i: usize) -> pack::RoutePt { + pack::route_pt(self.meta, &self.info, i) + } + + /// Tile grid coordinates for a world position. + pub fn tile_of(&self, x: f32, z: f32) -> (i32, i32) { + ( + libm::floorf((x - self.info.origin_x) / self.info.tile_size) as i32, + libm::floorf((z - self.info.origin_z) / self.info.tile_size) as i32, + ) + } + + /// Geometry views for a ready tile, plus its rise factor (0..1). + pub fn ready(&self, idx: usize, frame: u32) -> Option<(&[u8], &[u8], &[u8], f32)> { + match &self.states[idx] { + TileState::Ready { data, born } => { + let d = self.dir(idx); + let (v, i, l) = pack::tile_views(&d, data.bytes()); + Some((v, i, l, rise(*born, frame))) + } + _ => None, + } + } + + /// One streaming step: poll the async read, kick the next best load, + /// evict far tiles. Call once per frame, before recording the display + /// list (the previous list is synced by then, so drops are GE-safe). + pub fn update(&mut self, car_x: f32, car_z: f32, ahead_x: f32, ahead_z: f32, frame: u32) { + self.poll(frame); + + let (ctx, ctz) = self.tile_of(car_x, car_z); + + // Evict outside the hysteresis ring. + for tz in 0..self.info.nz as i32 { + for tx in 0..self.info.nx as i32 { + let ring = (tx - ctx).abs().max((tz - ctz).abs()); + if ring <= EVICT { + continue; + } + let idx = (tz * self.info.nx as i32 + tx) as usize; + if matches!(self.states[idx], TileState::Ready { .. }) { + self.states[idx] = TileState::Vacant; + self.resident -= 1; + } + } + } + + // One load in flight at a time. + if self.inflight.is_some() || self.embed_pending.is_some() { + return; + } + + // Best vacant tile in the KEEP ring: nearest first, ahead of the + // car breaking ties (ahead_* is a unit heading vector). + let mut best: Option<(f32, usize)> = None; + for dz in -KEEP..=KEEP { + for dx in -KEEP..=KEEP { + let (tx, tz) = (ctx + dx, ctz + dz); + if tx < 0 || tz < 0 || tx >= self.info.nx as i32 || tz >= self.info.nz as i32 { + continue; + } + let idx = (tz * self.info.nx as i32 + tx) as usize; + if !matches!(self.states[idx], TileState::Vacant) { + continue; + } + let d = self.dir(idx); + if d.off == 0 { + continue; // empty tile: nothing to load + } + let cx = self.info.origin_x + (tx as f32 + 0.5) * self.info.tile_size; + let cz = self.info.origin_z + (tz as f32 + 0.5) * self.info.tile_size; + let rx = cx - car_x; + let rz = cz - car_z; + let dist = libm::sqrtf(rx * rx + rz * rz); + let behind = if rx * ahead_x + rz * ahead_z < 0.0 { 1.35 } else { 1.0 }; + let score = dist * behind; + if best.map_or(true, |(s, _)| score < s) { + best = Some((score, idx)); + } + } + } + let Some((_, idx)) = best else { return }; + self.kick(idx); + } + + fn kick(&mut self, idx: usize) { + let d = self.dir(idx); + match &self.source { + Source::Embedded(_) => { + self.states[idx] = TileState::Loading; + self.embed_pending = Some((idx, EMBED_LATENCY)); + } + Source::File(fd) => { + let len = pack::tile_len(&d); + let mut buf = AlignedBuf::new(len); + unsafe { + sys::sceIoLseek32(*fd, d.off as i32, IoWhence::Set); + sys::sceIoReadAsync(*fd, buf.as_mut_ptr() as *mut c_void, len as u32); + } + self.states[idx] = TileState::Loading; + self.inflight = Some(InFlight { idx, buf }); + } + } + } + + fn poll(&mut self, frame: u32) { + if let Some((idx, ticks)) = self.embed_pending { + if ticks > 0 { + self.embed_pending = Some((idx, ticks - 1)); + } else { + let Source::Embedded(pack_bytes) = self.source else { + unreachable!() + }; + let d = self.dir(idx); + let data = &pack_bytes[d.off..d.off + pack::tile_len(&d)]; + self.states[idx] = TileState::Ready { + data: TileData::Borrowed(data), + born: frame, + }; + self.embed_pending = None; + self.loads += 1; + self.resident += 1; + } + return; + } + if self.inflight.is_none() { + return; + } + let Source::File(fd) = self.source else { return }; + let mut res: i64 = 0; + let rc = unsafe { sys::sceIoPollAsync(fd, &mut res) }; + if rc == 1 { + return; // still busy + } + let fl = self.inflight.take().unwrap(); + let d = self.dir(fl.idx); + if rc < 0 || (res as usize) < pack::tile_len(&d) { + // Read failed: leave the tile vacant; it will be retried. + self.states[fl.idx] = TileState::Vacant; + return; + } + unsafe { pocket3d_gu::writeback(fl.buf.as_slice()) }; + self.states[fl.idx] = TileState::Ready { + data: TileData::Owned(fl.buf), + born: frame, + }; + self.loads += 1; + self.resident += 1; + } +} + +/// Rise-from-the-ground factor: 0 at birth, easing out to 1. +pub fn rise(born: u32, frame: u32) -> f32 { + let t = frame.saturating_sub(born) as f32 / RISE_FRAMES as f32; + if t >= 1.0 { + return 1.0; + } + let inv = 1.0 - t; + 1.0 - inv * inv * inv +} diff --git a/scripts/pocket-drive.ts b/scripts/pocket-drive.ts new file mode 100644 index 00000000..eec0a061 --- /dev/null +++ b/scripts/pocket-drive.ts @@ -0,0 +1,122 @@ +// pocket-drive driver: cook the city pack, build the streaming-drive EBOOT, +// run it under PPSSPPHeadless (software renderer) with the pack on the +// emulated memory stick, and convert dumped frames to PNGs for eyeballing. +// The city-drive sibling of scripts/gu-demo.ts. +// +// bun scripts/pocket-drive.ts # frames 8..40 +// bun scripts/pocket-drive.ts --cap-start 0 --cap-n 600 -r +// bun scripts/pocket-drive.ts --embed # no ms0 file: embedded pack path +// +// Output PNGs land in dist/pocket-drive/. + +import { $ } from "bun"; +import { existsSync, mkdirSync, readdirSync, rmSync } from "node:fs"; +import { resolvePspBuildToolchain } from "./psp-toolchain.ts"; + +const repo = new URL("..", import.meta.url).pathname; +const home = process.env.HOME ?? ""; +const crateDir = `${repo}pocket3d/crates/pocket-drive/`; + +// ---- args ------------------------------------------------------------- +const argv = Bun.argv.slice(2); +function flag(name: string, def: string): string { + const i = argv.indexOf(`--${name}`); + return i !== -1 && argv[i + 1] ? argv[i + 1] : def; +} +const capStart = flag("cap-start", "8"); +const capN = flag("cap-n", "32"); +const release = argv.includes("-r") || argv.includes("--release"); +const embed = argv.includes("--embed"); + +// ---- 1. cook ---------------------------------------------------------- +const pdrv = `${repo}dist/drive/manhattan.pdrv`; +console.log("pocket-drive: cooking manhattan"); +await $`bun cooker/cook.ts --out ${pdrv}`.cwd(crateDir); + +// ---- 2. cargo psp (same canonical contract as scripts/gu-demo.ts) ------ +let toolchain: ReturnType; +try { + toolchain = resolvePspBuildToolchain(); +} catch (error) { + console.error(error instanceof Error ? error.message : String(error)); + process.exit(1); +} +const sdk = toolchain.sdk.path; + +const env = { + ...toolchain.environment, + RUSTFLAGS: "-A linker-messages -A unexpected-cfgs -A unstable-name-collisions", + CRATE_CC_NO_DEFAULTS: "1", + TARGET_CC: "clang", + TARGET_AR: `${toolchain.llvmBin}/llvm-ar`, + TARGET_CFLAGS: + `-target mipsel-sony-psp -mcpu=mips2 -msingle-float -mlittle-endian -mno-abicalls -fno-pic -G0 -mno-check-zero-division ` + + `-fno-stack-protector -I${sdk}/psp/include -I${sdk}/psp/sdk/include`, + AR_mipsel_sony_psp: `${toolchain.llvmBin}/llvm-ar`, + RANLIB_mipsel_sony_psp: `${toolchain.llvmBin}/llvm-ranlib`, + RUST_PSP_TARGET: `${repo}native/targets/mipsel-sony-psp.json`, + RUST_PSP_ABORT_ONLY: "1", + CARGO_PROFILE_DEV_OPT_LEVEL: process.env.CARGO_PROFILE_DEV_OPT_LEVEL ?? "3", + DRIVE_PACK: embed ? pdrv : "", + DRIVE_CAP_START: capStart, + DRIVE_CAP_N: capN, +}; + +console.log(`pocket-drive: cargo psp (cap=${capStart}+${capN}${embed ? ", embedded pack" : ""})`); +const cargoArgs = release ? ["--release"] : []; +await $`${toolchain.rustup} run ${toolchain.manifest.rust.toolchain} cargo psp ${cargoArgs}` + .cwd(crateDir) + .env(env); + +const profile = release ? "release" : "debug"; +const ebootDir = `${crateDir}target/mipsel-sony-psp/${profile}`; +const named = `${ebootDir}/pocket-drive.EBOOT.PBP`; +if (existsSync(named)) { + await Bun.write(`${ebootDir}/EBOOT.PBP`, await Bun.file(named).arrayBuffer()); +} +if (!existsSync(`${ebootDir}/EBOOT.PBP`)) { + console.error(`no EBOOT.PBP under ${ebootDir}`); + process.exit(1); +} + +// ---- 3. PPSSPPHeadless ------------------------------------------------- +const ppsspp = + process.env.PPSSPP_HEADLESS ?? `${home}/ppsspp-src/build/PPSSPPHeadless`; +if (!existsSync(ppsspp)) { + console.log(`PPSSPPHeadless not found at ${ppsspp}; EBOOT at ${ebootDir}/EBOOT.PBP`); + process.exit(0); +} +// The pack on the emulated memory stick — the real streaming path. +if (!embed) { + mkdirSync(`${home}/.ppsspp/pocket-drive`, { recursive: true }); + await Bun.write( + `${home}/.ppsspp/pocket-drive/manhattan.pdrv`, + await Bun.file(pdrv).arrayBuffer(), + ); +} else { + rmSync(`${home}/.ppsspp/pocket-drive`, { recursive: true, force: true }); +} +const capDir = `${home}/.ppsspp/dc_cap`; +rmSync(capDir, { recursive: true, force: true }); +const timeout = process.env.DRIVE_TIMEOUT ?? "180"; +console.log("pocket-drive: PPSSPPHeadless (software renderer)"); +await $`${ppsspp} --graphics=software --timeout=${timeout} ${ebootDir}/EBOOT.PBP` + .nothrow() + .quiet(); + +// ---- 4. convert ------------------------------------------------------- +const outDir = `${repo}dist/pocket-drive`; +rmSync(outDir, { recursive: true, force: true }); +mkdirSync(outDir, { recursive: true }); +const raws = existsSync(capDir) + ? readdirSync(capDir).filter((f) => f.endsWith(".raw")).sort() + : []; +if (raws.length === 0) { + console.error("no frames dumped — check the run"); + process.exit(1); +} +for (const raw of raws) { + const png = `${outDir}/${raw.replace(".raw", ".png")}`; + await $`magick -size 512x272 -depth 8 RGBA:${capDir}/${raw} -alpha off -crop 480x272+0+0 +repage PNG24:${png}`.quiet(); +} +console.log(`pocket-drive: ${raws.length} frames -> ${outDir}/`);