NOTQINVR

1. Project Summary

A Unity 6 AR/VR application that serves as the human-facing visualization layer for the NOTQIN factory ecosystem — combining a VR digital twin (factory walk-through on PC/Quest 2) and an AR overlay system (phone pointed at a loom shows live sensor data, maintenance guides, training, and remote expert assistance).


2. Two Modes

ModePlatformUse CaseStatus
VR Digital TwinPC + Quest 2Factory director walks through 3D replica, sees all 8 loom health statuses in real-time✅ Built
AR OverlayAndroid/iOS phoneTechnician points phone at loom → floating sensor data panel + repair guides🚧 Scaffolded (7 modules, awaiting team)

3. Architecture

Data Pipeline

8x ESP32 on looms
  │ power (W), vibration (mm/s), temp (°C), tension (N), RFID
  ▼
InfluxDB (cloud)
  │ HTTP poll every 5 seconds
  ▼
DataManager.cs (Unity — C#)
  │ OnSnapshotUpdated event
  ▼
All UI subscribers update in sync
  ├── VR: MachineController → colours, auras, energy bars
  └── AR: MachineAROverlay → floating panels per loom

Key Data Fields per Machine

FieldUnitUse
avg_power_wattsWMain health indicator
co2_kg_hkg CO₂/hEmissions tracking (CBAM)
health_score0.0–1.01 - (power - 400) / 600
alert_level0/1/2OK / Warning (750W) / Critical (900W)
cbam_contribution€/yearEU carbon tax cost
wifi_rssidBmSensor connectivity
last_seentimestampOnline detection

4. Tech Stack

LayerTechnology
EngineUnity 6000.3.11f1 (LTS)
Render PipelineURP 17.0.3 (Universal)
XR FrameworkAR Foundation 6.0.3
AndroidARCore 6.0.3
iOSARKit 6.0.3
VRXR Interaction Toolkit 3.0.7 + OpenXR 1.14.3
Quest 2Oculus 4.5.4
InputInput System 1.11.2
UITextMeshPro 3.0.9
Build (Android)ARM64, API 24+, IL2CPP

5. Project Structure — Assembly Definitions

13 asmdef files (zero circular dependencies):

AssemblyOwnerContents
NOTQIN.CoreCoreDataManager, InfluxDBClient, NOTQINConfig, MachineData
NOTQIN.GameVR/SharedFactoryBuilder, MachineController, HealthAura, EnergyBar, MachineDetailPanel
NOTQIN.AR.ContractsContractsIMachineRecognizer, IMaintenanceService, DataTypes
NOTQIN.AR.Contracts.MocksMocksOffline testing sandbox implementations
NOTQIN.AR.CoreMember 1ARSessionManager (stub)
NOTQIN.AR.RecognitionMember 2MachineQRTracker, ManualMachineSelector (stubs)
NOTQIN.AR.OverlayMember 3MachineAROverlay, BillboardFacer
NOTQIN.AR.MaintenanceMember 4ARMaintenanceGuide (stub)
NOTQIN.AR.RemoteAssistMember 5ARRemoteSession/WebSocket (stub)
NOTQIN.AR.TrainingMember 6ARTrainingModule multilingual (stub)
NOTQIN.AR.QAMember 7ARPerformanceProfiler (stub)
NOTQIN.EditorEditorARConfigBootstrap, NOTQINSceneBuilder, VRRigBuilder
NOTQIN.Tests.EditModeTestsDataManagerTests, MockMachineRecognizerTests

6. What Is Built

VR Digital Twin (✅ 100% Complete)

Factory Scene:

  • FactoryBuilder.cs — procedurally generates floor grid + 4 walls + 8 auto-scaled looms
  • NOTQIN_Loom_V2.fbx (1.1 MB) — high-poly Jacquard loom model, auto-instantiated 8×

Per-Machine Visualizations:

  • MachineController.cs — subscribes to snapshots, drives body colour + health aura + energy bar
  • HealthAura.cs — pulsing coloured disc on floor: green (0.7+) → orange (0.4–0.7) → red (<0.4)
  • EnergyBar.cs — vertical pole, height ∝ watts, colour ∝ health score
  • AlertIndicator.cs — red halo that pulses when alert_level ≥ 1

UI:

  • MachineDetailPanel.cs — slide-in panel with all sensor readings + CBAM cost + wear simulator (counterfactual “what-if”)
  • FactoryHUD.cs — top-level HUD (total power, total CO₂, alert count)
  • BillboardPanel.cs — makes UI canvas face camera in 3D space

Data Core:

  • DataManager.cs — polls InfluxDB/relay every 5s, fires OnSnapshotUpdated event
  • InfluxDBClient.cs — HTTP client for Flux queries, graceful fallback to mock data
  • NOTQINConfig.cs — ScriptableObject singleton (all tunable settings: URLs, colours, thresholds)

AR System (🚧 Scaffolded — Awaiting 7-Member Team)

What’s ready:

  • All 7 module skeletons compile with no errors
  • Mock implementations for offline testing
  • Contract interfaces defined
  • BillboardFacer.cs (rotates panel to camera) — complete
  • ARConfigBootstrap.cs — auto-creates config asset on project open

What needs implementation:

ModuleOwnerWhat’s Needed
A — SessionMember 1AR plane detection, anchor creation, ARSessionManager
B — RecognitionMember 2QR library with 8 loom codes, ARTrackedImageManager
C — OverlayMember 3Floating health panel prefab, MachineARPanel
D — MaintenanceMember 4Step-by-step repair callouts, GET /maintenance/procedures/:id
E — Remote AssistMember 5WebSocket + WebRTC for expert annotations
F — TrainingMember 6Multilingual (AR/FR/EN) component labels + quiz scoring
G — QAMember 7Performance profiler UI, ≥60 FPS assertions

7. Scenes

ScenePurposeStatus
scene.unityMain test sceneExists
scene1.unityVariant/backupExists
vrscene.unityVR digital twinExists
AR sceneAR overlay sceneNot yet created

8. Performance Targets

TargetMetric
Frame rate≥ 60 FPS on Snapdragon 665
AR tracking latency< 100ms
Memory< 800 MB
FindObjectsByType calls≤ 2 per frame
Build size (APK)~150–190 MB
Data poll interval5 seconds

9. CI/CD

  • GitHub Actions — runs EditMode + PlayMode tests on push/PR to master
  • Unity Build Automation — cloud.unity.com (handles Android IL2CPP builds)
  • Secrets guard — CI scans for base64 strings >400 chars (catches committed API keys)
  • PR template — checklist: no hardcoded URLs, APIs in Contracts, .meta files committed

10. Integration with NOTQIN Ecosystem

NOTQIN Core (InfluxDB)
  └── DataManager polls every 5s → VR + AR update

IEIA (notqin-agent-v2)
  └── Maintenance logs → Module D repair procedures
  └── Anomaly alerts → Module C alert indicator

Future:
  NOTQINVR Module D logs completed repairs → IEIA agent learns
  NOTQINVR Module F training scores → IEIA adjusts shift schedules

11. Open Questions

  • Who are the 7 team members for AR modules?
  • Is there a real factory pilot planned for NOTQINVR AR?
  • Does the VR mode need Quest 2 standalone build or PC-only?
  • Should Maintenance Module D connect to IEIA or a separate backend?

12. Next Actions

  • Create AR scene and configure ARSessionManager (Module A)
  • Create QR reference image library for 8 looms (Module B)
  • Build MachineARPanel prefab with health ring + sensor labels (Module C)
  • Set up backend endpoints for GET /maintenance/procedures/:id (Module D)
  • Write Dockerfile for local relay server
  • Deploy VR twin to Quest 2 for first demo
  • Record demo video of VR digital twin for Personal Brand