update Tue 07/14/2026 12:21:23.58

This commit is contained in:
2026-07-14 12:21:24 +10:00
parent b2b555ef16
commit f2bfad7ee2
14 changed files with 202 additions and 58 deletions
+9 -1
View File
@@ -9,8 +9,16 @@ viewpoint. Tribute project — not affiliated with or endorsed by the LEGO Group
Node 20 (Express + ws) in Docker · Three.js r160 (CDN import map) · js-aruco2
(ARUCO_4X4_1000, vendored) · vanilla ES-module client.
## Units
**All world coordinates are centimetres** (1 Three.js unit = 1 cm): anchor/spawn/building
positions and sizes, wander radius, calibration readouts. Marker print size stays in mm
(`sizeMM`); the mm→cm conversion happens once in `fuse.js`.
## Baked-in AR fixes (hard-won, do not "simplify" these)
- **POS-IT pose**: rotation used **as-is**; translation **Y and Z negated** (`-t[1]`, `-t[2]`).
- **POS-IT pose**: **raw** centered image coords into POS-IT (no Y pre-flip — pre-flipping
double-inverts the vertical axis and makes tilt respond backwards); rotation used
**as-is**; translation **Y and Z negated** (`-t[1]`, `-t[2]`). A/B toggle: `FLIP_INPUT_Y`
in `public/js/ar/pose.js`.
- **Planar-ambiguity flips**: per-marker temporal consistency — pick the POS-IT solution
closest to the previous frame (`public/js/ar/pose.js`).
- **Phantom marker IDs**: `maxHammingDistance: 0` (`public/js/ar/detect.js`).