Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
README.md
arena-native #
A standalone first-person Metal + Swift renderer of AC's arena piece.
The movement and world are faithful Swift ports of the shared JS modules, so the feel matches the web arena 1:1:
PMove.swift←system/public/aesthetic.computer/lib/pmove.mjs(Quake-style friction + ground/air accelerate, obstacle push-out, gravity, jump, crouch — same coordinate convention: +X right, +Y up, +Z forward).ArenaWorld.swift←system/public/aesthetic.computer/lib/arena-world.mjs(four corner pillars, center totem, two S-curve walls, per-obstacle colors, ground bounds, physics tuning).
The Metal layer replaces AC's Form/cam-doll immediate-mode renderer:
Mesh.swift— CPU geometry builders (ground grid, lit boxes/cylinders, edge lines), all baked in world space.Renderer.swift— Metal pipelines + fixed-step (120 Hz) physics + camera.Shaders.swift— Metal shader source, compiled at runtime from a string (no.metallibbuild step) — Lambert-lit triangles + flat lines.MathUtils.swift— right-handed perspective + look-at (Metal 0..1 depth).main.swift—NSApplication+ an input-capturingMTKView.
Run #
swift run # from arena-native/
# or
swift build && .build/debug/ArenaNative
Controls #
| Input | Action |
|---|---|
| Click | Capture the pointer (FPS mouse-look) |
| Mouse | Look |
| W A S D | Move (strafe-jump physics apply in air) |
| Space | Jump |
| Shift | Crouch |
| Esc | Release the pointer |