How tayyabkhalid25/recon-reconstructed-evidence-via-crime-scene-nerf works
RECON combines a video-to-Unity 3D reconstruction pipeline with a web case-management and evidence-custody application. The main loop is capture upload, scene/job creation, GPU reconstruction, result storage, and Unity asset retrieval with unitScale applied in Unity. The web app also supports case and scene browsing, job status, custody verification, scene anchors, and encrypted asset storage. Edges reflect README statements or shown source calls; the GPU pipeline’s internal stage links are documented at a high level, while unsampled web routes are not connected speculatively.
Main entry points: run_scene.py GPU reconstruction · worker.py GPU job worker · uploads/route.ts Upload endpoint · cases/route.ts Case endpoints
Components 23
Reconstruction pipeline
- GPU reconstruction
gpu/run_scene.py - Compute unitScale
tools/compute_unitscale.py - Unity PLY conversion
tools/convert_ply_to_unity.py - Splat utilities
tools/decimate_splats.py - Mesh conversion
tools/splat_to_mesh.py - GPU job worker
gpu/worker.py
Web application
- Case and scene UI
web/src/app/(dashboard)/cases/[id]/case-detail.tsx - Upload endpoint
web/src/app/api/uploads/route.ts - Case endpoints
web/src/app/api/cases/route.ts - Job endpoints
web/src/app/api/jobs/route.ts - Scene asset endpoint
web/src/app/api/scenes/[id]/asset/route.ts - Scene and anchor APIs
web/src/app/api/scenes/[id]/anchor/route.ts - Custody verification
web/src/app/api/custody/verify/route.ts
Evidence services
- Hash-chain audit
web/src/lib/custody.ts - Scene anchoring
web/src/lib/anchor.ts - Asset storage
web/src/lib/storage.ts - Asset encryption
web/src/lib/encryption.ts
Persistent state
- Reconstruction queue
web/src/lib/queue.ts - PostgreSQL records
web/src/lib/prisma.ts
Other components
- Capture video
- Investigator
- Unity client
- Redis
Connections 25
- Capture video → GPU reconstruction: processes video
README.md - GPU reconstruction → Compute unitScale: runs stage
README.md - GPU reconstruction → Unity PLY conversion: runs stage
README.md - GPU reconstruction → GPU job worker: worker launches
gpu/worker.py - Investigator → Upload endpoint: uploads capture
web/src/app/api/uploads/route.ts - Upload endpoint → PostgreSQL records: creates scene and job
web/src/app/api/uploads/route.ts - Upload endpoint → Asset storage: writes video
web/src/app/api/uploads/route.ts - Upload endpoint → Hash-chain audit: appends audit
web/src/app/api/uploads/route.ts - Upload endpoint → Reconstruction queue: enqueues job
web/src/app/api/uploads/route.ts - Reconstruction queue → Redis: stores queue job
web/src/lib/queue.ts - GPU job worker → Job endpoints: claims and reports
gpu/worker.py - GPU job worker → GPU reconstruction: runs reconstruction
gpu/worker.py - GPU job worker → Job endpoints: uploads result
gpu/worker.py - GPU job worker → PostgreSQL records: job state recorded
- Unity client → Scene asset endpoint: fetches scene asset
README.md - Scene asset endpoint → Asset storage: streams asset
- Asset storage → Asset encryption: encrypts and decrypts
web/src/lib/storage.ts - Investigator → Case endpoints: manages cases
web/src/app/api/cases/route.ts - Case endpoints → PostgreSQL records: reads and creates
web/src/app/api/cases/route.ts - Case endpoints → Hash-chain audit: audits case creation
web/src/app/api/cases/route.ts - Custody verification → Hash-chain audit: verifies chain
- Scene and anchor APIs → Scene anchoring: handles transforms
- Case and scene UI → Investigator: presents case details
- Splat utilities → GPU reconstruction: post-processes output
README.md - Mesh conversion → GPU reconstruction: creates collider mesh
README.md