---
# System prepended metadata

title: 3D Asset platform

---

# 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*