Skip to content

Assets & Materials

Every project owns a durable asset catalog: saved with the project, hash-verified, inspectable by AI, and fully undoable. Nothing about your content library is hidden state.

Importing

Import Files for individual sources, Import Folder for a model with its textures.

Type Formats Notes
Models .gltf, .glb, .obj glTF is the first-class path, including skins and animation clips
Textures .png, .tga sRGB and data maps handled correctly
Materials .material Sektor's versioned PBR material
Prefabs .prefab Reusable multi-object assets
Audio .wav (PCM) Uncompressed source of truth

Imports are non-destructive copies into the project's Assets/ tree. Each record gets a stable ID, a SHA-256 content hash, source metadata, and diagnostics. Model records expose what is inside before you place anything: primitive counts, embedded images, and a materialSlots array identifying which PBR maps each slot actually has.

Removing a record never deletes the source file, and is refused while anything still references it. Usage data (usageCount, referencedBy) shows exactly which entities use which asset in which slot.

Reusable materials

Create → Material authors a versioned PBR material: base color and alpha, metallic, roughness, emissive color and strength, normal scale, and four optional texture channels (base color, normal, metallic-roughness, emissive).

Assign materials per model slot in the mesh Inspector; unassigned slots keep the model's imported look. Editing one material updates every object referencing it, live. Because material sources, catalog metadata, and scene state share one undo history, the on-disk material can never disagree with what you see.

{"op":"material.create","name":"Burnished Copper"}
{"op":"material.update","assetId":"asset_material_0123456789","name":"Burnished Copper",
 "baseColor":[0.72,0.22,0.06,1],"metallic":0.84,"roughness":0.24,
 "emissiveColor":[0.02,0.004,0],"emissiveStrength":1,"normalScale":1,
 "textures":{"baseColor":"","normal":"","metallicRoughness":"","emissive":""}}

Thumbnails you never think about

Model cards get automatic 320×180 thumbnails from a dedicated hidden renderer. Generation never touches your scene, files commit atomically, and content changes invalidate the cache. It just works, which is the point.

Placement, scatter, and prefabs

  • Place Selected Model in World raycasts real mesh geometry, so props seat on hills and roofs.
  • Scatter Model distributes 1 to 512 instances deterministically by seed within a radius and scale range. Same seed, same forest.
  • Prefabs capture one or many roots as a reusable asset with overrides, per-instance difference inspection, Revert, Apply, and undoable unpacking.
{"op":"scene.model.scatter","assetId":"asset_0123456789abcdef","count":48,"radius":80,
 "minimumScale":0.8,"maximumScale":1.25,"seed":42}
{"op":"prefab.create","name":"Castle Gate","entityIds":[2,5,8],"primaryEntityId":2,"anchorMode":"primary"}
{"op":"prefab.instantiate","assetId":"asset_...","x":30,"y":0,"z":12,"ry":90}

Starter content and the Asset Store

New projects can install CC0 PBR starter materials for credible surfaces on day one. Beyond that, the Sektor Asset Store subscription unlocks the full library of models, materials, and audio, with Import to Project: press one button on the web and the asset streams into your open project, hashed, cataloged, and undoable like everything else.