# 3D Asset platform ## Concepts **Asset**: Name, Description, Type, Photos*, Format*, Textures*, Colors*, Tags* **Format**: Asset, Type, URL, Status **FormatStatus**: Missing, Pending, Converting, Ready **Stage**: Name, Description, Slots, Asset **StageSlot**: Name, Tags*, Position **Scene**: Stage, Name, Description, Props **SceneProp**: Scene, StageSlot, Asset, Offset **Session**: Scene, OriginalScene, AccessCode Example: ```yaml scenes: - name: Koens Office description: A perfectly squared office stage: name: squared-room description: A 4x4 room asset: - name: room-prefab description: type: model tags: - room - space - squared formats: - type: prefab url: https://x.com/room-prefab.pfb status: ready - type: 3dm url: https://x.com/room-prefab.3dm status: pending photos: - url: https://x.com/room-prefab-1.jpg description: "Example photo 1" - url: https://x.com/room-prefab-2.jpg description: "Example photo 2" textures: // TODO slots: - name: desk description: A place for the desk, max sized 200/90 position: [155, 155] orientation: 270dg tags: - furniture - desk - name: chair description: A chair in front of the desk position: [100, 155] orientation: 90dg tags: - furniture - chair - office props: - slot: desk asset: name: wooden-desk-1 type: model tags: - desk formats: - type: model url: https://x.com/wooden-desk-1.md status: ready materials: - name: soft-wood type: material formats: - type: material url: https://x.com/soft-wood.mat status: ready - type: png url: null status: converting - name: hard-wood type: material formats: - type: material url: https://x.com/hard-wood.mat status: ready - slot: chair asset: name: sample-chair-1 tags: - desk formats: - type: prefab url: https://x.com/sample-chair-1.pfb status: ready colors: - rgb(123,132,132) - rgb(0,0,0) ``` ## Deliverables - Authentication / Authorization - API - Simple admin interface (web) - Asset converter pipeline - Unity scene renderer ## Fundamentals - Distributed compute - Distributed storage - Local asset delivery - E2E encrypted ## Estimates ### Auth - Option 1: Self-hosted (identity server): 8 hours - Option 2: Managed identity server: 2 hours ### API - Platform fundamentals: 8 hours - Storage abstractions: 4 hours - Entities/Models: 4 hours - Endpoints; 8 hours - Documentation: 8 hours - Storage implementation: 8 hours ### Admin interface - Platform fundamentals: 8 hours - CRUD pages: 8 - 40 hours. (Depends on requirements) - Optional: Analytical pages: 8 - 40 hours. (Depends on requirements) - Documentation: 2 hours ### Asset converter pipeline *Open question* ### Unity scene renderer *Outside of scope*