New organ: IR Position Array (8x ESP32-S3 AI CAMs as indoor GPS). Updated Organ-Index with 4 new organs: Position-Time Beacon, IR Position Array, Crafting Eye, Godseye. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.2 KiB
IR Position Array Organ
Room-scale organism tracking via IR beacon triangulation.
"The organisms can't see their own backs. They know themselves through each other."
Overview
The IR Position Array is infrastructure — fixed cameras that run 24/7, tracking all organisms via their IR beacons. This is the nimmerverse's indoor GPS.
Hardware Specification
| Component | Spec | Quantity | Status |
|---|---|---|---|
| Camera | ESP32-S3 AI CAM (night vision) | 8× | Received 2026-01-05 |
| IR Sensitivity | Native (night vision LEDs + sensor) | - | Built-in |
| Resolution | OV2640/OV5640 | - | TBD confirm |
| Power | 5V wired (ceiling PSU) | - | Planned |
| Enclosure | 3D printed custom case | 8× | To design |
Upgrade from Original Spec
| Original (Nimmerswarm-Interface) | Actual |
|---|---|
| 4× PS3 Eye (IR filter removed) | 8× ESP32-S3 AI CAM (native IR) |
| USB hub / extension | WiFi streaming (no USB!) |
| ~80 CHF cameras | Already purchased |
8 cameras > 4 cameras = better coverage, more triangulation angles, redundancy.
Architecture
CEILING (8× fixed cameras, star power from central PSU)
┌─────────────────────────────────────────────────────┐
│ │
│ [📷1] [📷2] [📷3] │
│ ╲ │ ╱ │
│ ╲ ┌────────────┴────────────┐ ╱ │
│ ╲ │ │ ╱ │
│ [📷4]──╲──│ ⚡ CEILING PSU │─╱──[📷5] │
│ ╲ │ (center, 5V hub) │╱ │
│ ╲└─────────────────────────┘ │
│ ╲ │ ╱ │
│ ╲──────────┼──────────╱ │
│ │ │
│ [📷6] │ [📷7] │
│ │ │
│ [📷8] │
│ │
│ 🤖────📍 IR beacon │
│ organism │
│ │
└───🚪───────────────────────────────────────────────┘
(0,0) origin
Dual-Spectrum Design
From ../interfaces/Nimmerswarm-Interface:
| Spectrum | Channel | Purpose |
|---|---|---|
| Infrared | IR Position Array | WHERE organism is (24/7, day/night) |
| Visible | 3x3 LED Matrix | WHAT organism is doing (state broadcast) |
Zero crosstalk. Two independent data streams.
Processing Pipeline
8× ESP32-S3 AI CAM
│
│ WiFi/MJPEG streams
▼
┌─────────────────────────────────┐
│ PROCESSING NODE │
│ (The Womb / RTX 6000 Max-Q) │
│ │
│ • Receive 8 camera streams │
│ • Detect IR beacon blobs │
│ • Multi-camera triangulation │
│ • Structure from Motion (SFM) │
│ • Output: (x, y, z) @ 30fps │
└─────────────────────────────────┘
│
│ NATS publish
▼
┌─────────────────────────────────┐
│ nats://nimmerverse/position/ │
│ │
│ { │
│ organism_id: "crawler_001", │
│ x: 1.234, │
│ y: -2.567, │
│ z: 0.05, │
│ confidence: 0.95, │
│ timestamp: 1704499200.123 │
│ } │
└─────────────────────────────────┘
│
▼
PHOEBE (ground truth storage)
Algorithm: Low-Cost-Mocap
Standing on shoulders of Low-Cost-Mocap by @jyjblrd:
| Component | Their Solution | Our Adaptation |
|---|---|---|
| Multi-camera triangulation | OpenCV SFM bundle adjustment | Same |
| Camera calibration | camera_params.json |
Same process |
| 3D reconstruction | Epipolar geometry | Same math |
| Markers | Visual markers on drones | IR LEDs on organisms |
| Communication | ESP32 wireless | NATS messaging |
Original use: Indoor drone swarms Our use: Organism positioning in nimmerhovel
Respect to the fellow ape who did the groundwork.
Camera Placement Strategy
Nimmerhovel Dimensions
- X: 4.5m (along wall from kitchen door)
- Y: 3.75m (into room toward windows)
- Z: 2.04m (floor to sloped ceiling)
- Origin: (0,0,0) at kitchen door corner
8-Camera Coverage
| Camera | Position (approx) | Orientation | Coverage |
|---|---|---|---|
| CAM-1 | Corner (0, 0, ~2.0m) | Down 45°, into room | Origin quadrant |
| CAM-2 | Corner (4.5, 0, ~2.0m) | Down 45°, into room | Right-front |
| CAM-3 | Corner (0, -3.75, ~2.0m) | Down 45°, toward door | Left-back |
| CAM-4 | Corner (4.5, -3.75, ~2.0m) | Down 45°, toward door | Right-back |
| CAM-5-8 | Mid-walls / center | TBD | Fill gaps |
8 cameras = no blind spots, multiple angles on every point.
Mounting
- Ceiling mount via 3D printed enclosure with mounting tabs
- Angle: ~45° down from ceiling plane
- Power: Star topology from ceiling PSU (center)
- Cable runs: Max ~3m from PSU to any camera
Lifeforce Economics
| Metric | Value | Rationale |
|---|---|---|
| Type | Generator | Provides ground truth |
| Rate | +0.5 LF per position fix | Training data value |
| Cost | ~0.1 LF per frame (infra) | Always-on baseline |
| Net | Positive (generates value) | Core infrastructure |
Every position fix = verified training data for organism navigation.
IR Beacon Specification
On each organism:
| Component | Spec |
|---|---|
| LED Type | IR LED (850nm or 940nm) |
| Pattern | Unique pulse code per organism |
| Power | From organism Akku |
| Visibility | Detectable by all 8 cameras |
ORGANISM
┌─────────────────────┐
│ │
│ ┌───────────────┐ │
│ │ 3x3 VISIBLE │ │ ← State broadcast (RGB)
│ │ LED Matrix │ │
│ │ 🔴⚫🟢 │ │
│ └───────────────┘ │
│ │
│ 📍 IR LED │ ← Position beacon (invisible)
│ │
│ [🔋 Akku] │ ← Mobile power
│ │
└─────────────────────┘
Integration Points
| System | Interface |
|---|---|
| NATS | nats://nimmerverse/position/stream |
| Phoebe | organism_positions table |
| S2 Cells | Position → S2 cell ID at L1 (1cm) resolution |
| Virtual Garden | Ground truth for prediction verification |
| Vision Organ | Separate stream (visible spectrum state recognition) |
Dependencies
| Dependency | Status | Notes |
|---|---|---|
| 8× ESP32-S3 AI CAM | Received | Hardware ready |
| Ceiling PSU | Planned | Power distribution |
| 3D printed enclosures | To design | Camera mounting |
| Printer station | Blocked | Waiting on Baumarkt materials |
| NATS messaging | Planned | Transport layer |
| The Womb (RTX 6000) | Waiting | Processing node |
Calibration Procedure
- Camera intrinsics — Checkerboard calibration per camera
- Extrinsics — Multi-camera pose estimation (bundle adjustment)
- Origin alignment — Align to GPS beacon at (0, 0, 2.0m)
- Verification — Known position test with ruler measurements
Status
| Phase | Status |
|---|---|
| Hardware acquisition | Complete |
| Enclosure design | Not started |
| Enclosure printing | Blocked (printer station) |
| Physical mounting | Not started |
| Camera calibration | Not started |
| Software pipeline | Not started |
| Integration test | Not started |
Created: 2026-01-05 Version: 1.0 Based on: ../interfaces/Nimmerswarm-Interface (Dual-Spectrum Architecture section) Philosophy: "They know themselves through each other."
The eyes that never blink. The infrastructure that makes position truth.