Unity HDRP-based piping design / validation / 3D viewer tool, with a phased extension toward operations-side digital twin. Portfolio piece for one specific job application — see D-001 for the full rationale, scope split (M1 vertical slice → M2 boost → M3 full ambition), and what is deliberately substituted (real CFD solver → ONNX surrogate). The UnityFactorySceneHDRP asset (factory environment + worker character) is reused as backdrop for authored piping, not as the primary subject. M1 closed 2026-05-07 (retrospective). M2 (drawing 2D ⇄ 3D round-trip + ONNX surrogate + flow viz) opens at user discretion.
- Language(s): C#
- Runtime / framework: Unity 6000.4.4f1 LTS, HDRP 17.4.0
- Package manager / build: Unity Package Manager (UPM); Unity Editor build pipeline
- Test framework: Unity Test Framework (planned, not yet integrated)
When starting a fresh session, read in this order:
- This file (
AGENTS.mdorCLAUDE.md— they are identical) README.md(TBD — to be written during M1)docs/decisions/— the active D-records (start with D-001, the load-bearing scope decision)docs/milestones/M1-piping-vertical-slice/README.md— current milestone scope, deliverables checklist, and open questions- Main scene at
Assets/UnityFactorySceneHDRP/Scene_Factory/FactorySceneSample.unity— backdrop for authored piping; treat as read-only per AGENTS conventions
Use this lookup before reaching for a standard or template. Standards live in the aegis repo; link out to them as needed.
| Situation / what user says | aegis standard | aegis template | Produce in this project |
|---|---|---|---|
| First-day setup / convention change | 01-conventions | AGENTS.template.md |
AGENTS.md (= CLAUDE.md) |
| "X vs Y" / structural choice | 02-decisions | D-record.template.md |
docs/decisions/D-{NNN}-{slug}.md |
| Before non-trivial work (>1 day or >3 sub-tasks) | 03-plans | Plan-record.template.md |
docs/plans/P-{NNN}-{slug}.md |
| End of meaningful work | 04-verification | V-record.template.md |
docs/verifications/V-{NNN}-{slug}.md |
| Routine commit | 05-changes | (commit format) | git commit |
| Phase opens | 06-milestones | Milestone-README.template.md |
docs/milestones/M{N}-{slug}/README.md |
| Phase closes (Closed or Abandoned) | 06-milestones + 07-learn-from-friction | Retrospective.template.md |
docs/milestones/M{N}-{slug}/retrospective.md |
| External narrative (portfolio) | 07-learn-from-friction | Portfolio-entry.template.md |
{project-specific location} |
| Same friction recurred | 07-learn-from-friction | (memory or standards refinement) | memory file or D-record |
- Chat collaboration: Korean
- Authored documents (markdown, code comments): English
This project follows aegis discipline:
- Structural decisions →
docs/decisions/D-{NNN}-{slug}.md - Non-trivial work → plan record at
docs/plans/P-{NNN}-{slug}.md - Verified work →
docs/verifications/V-{NNN}-{slug}.md - Milestone closures → retrospective at
docs/milestones/M{N}-{slug}/retrospective.md
Per aegis 05-changes:
- Format:
type(scope): summary - Imperative mood ("add", not "added")
- One logical change per commit
- Body explains why, references related D/P/V records
None yet. When project-specific rules emerge beyond aegis's seven standards (e.g. Unity asset organization, scene structure conventions, C# style beyond defaults), place them at docs/standards/local/{NN}-{slug}.md and link here. Per aegis 01-conventions § Project-specific standards.
- Foundation decisions (architecture, dependency policy, milestone scope): present alternatives with tradeoffs grounded in project constraints; the user picks before execution. Take the time needed.
- Execution after rules are set: proceed briskly with short user confirmations ("진행", "권장 진행", "X로 진행"); no per-step option prompts.
- Auto-OK: editing files, compile/test verification, small commits, refactoring within a single file, reading the codebase.
- Confirmation-required: destructive git operations (
reset --hard, force push, branch deletion), dependency upgrades or additions, the first D-record on a new topic, anything that modifies external assets underAssets/UnityFactorySceneHDRP/(we treat that asset as read-only by default). - Trajectory reporting: when iterating on multi-round fixes (e.g. compile errors, warnings), report progress as a trajectory ("25 errors → 8 warnings → 0 new") so it is clear whether the loop is converging.
- A structural decision without a D-record is a future bug.
- A V-record's findings must either feed the next milestone or be explicitly dropped — never silently disappear.
AGENTS.mdandCLAUDE.mdmust stay identical. Edit one, mirror to the other, in the same commit.- When two standards seem to conflict, propose a refinement via D-record; do not silently work around.
M1 (piping vertical slice) is closed. The lists below describe what stays out of scope at this transition and what M2 should pick up. See M1 retrospective for the carried-forward follow-ups and D-001 for the M1 → M2 → M3 decomposition.
Permanently out of scope (no current or future milestone targets these):
- Production / standalone build distribution (.exe packaging, signing, installer)
- VR / AR support
- Multi-user collaboration / networked sessions
- Real-time external data ingestion from real fab sensors / MES / SCADA — substituted by surrogate per D-001
- Implementing a CFD solver from scratch — substituted by ONNX surrogate at every phase
M2 candidates (carried from M1 retrospective + V-001 follow-ups) — formalize when M2 opens:
- Drawing 2D ⇄ 3D round-trip (SVG export and re-import → PipeData reconstruction)
- ONNX mini-surrogate (Python training, Unity ONNX runtime inference) replacing the analytic pressure-drop placeholder
- Flow-direction arrows / particle / flow-line visualization (C3)
- B2 layer-toggle UI scene wiring (Toggle GameObjects + LayerToggleController fields)
- V2 sharp-bend UI surfacing (
OnSharpBendsUpdatedevent + alert panel extension) - V3 slope-direction rule (drainage)
- A4 T-junction / spline branch authoring
- EditMode test scaffolding (
Assets/Project/Tests/+ .asmdef + DetectClashes / JsonUtility tests)
Deferred to M3 (full A+C ambition per D-001):
- Semiconductor equipment mock-up prefabs
- Auto-routing / path-finding from start point to equipment
- CFD-comparison demo (best-route selection from surrogate output)
Conditional (touched only via D-records):
- Modifying
Assets/UnityFactorySceneHDRP/external asset code — read-only by default; the auto-migration of HDRP material assets observed during M1 is left as a known noise source, ack-only.
Claude Code auto-memory lives at ~/.claude/projects/-mnt-c-Users-x8333-Desktop-AI-PJT-unity-SmartFactory/memory/ (auto-created per session). Use it for user/feedback/project/reference memories per the auto-memory system; keep MEMORY.md as a concise index, not a content store.