Skip to content

Models and Licenses

Alex Coulombe edited this page May 20, 2026 · 2 revisions

Models and Licenses

All third-party geometry and textures used in Holodeck-in-a-Pocket are licensed under Creative Commons (CC0 or CC-BY 4.0). Attribution for CC-BY models is required when redistributing or presenting this work.

See also: LICENSES.md in the repo root — this wiki page mirrors that file.


Format guide

Primary format: GLB (self-contained binary glTF 2.0)

GLB bundles mesh, materials, and textures into a single file — ideal for web serving (one HTTP request, no path-relative texture lookups). Babylon.js v7 loads GLB via @babylonjs/loaders/glTF which is already imported in main.ts.

Draco compression: Recommended for any model over ~3 MB. Babylon.js v7 includes the Draco decoder; no additional imports needed. Typical compression: 6–10× for geometry, does not compress textures.

# Compress a GLB (requires gltfpack or gltf-pipeline)
gltfpack -i input.glb -cc -o output.glb            # gltfpack (mesh + texture compression)
npx gltf-pipeline -i input.glb -o output.glb -d    # gltf-pipeline (Draco mesh only)

Budget: ≤8 MB per scene total (phone WebXR constraint — large models stall on mobile WebGL).

Gaussian splats: Babylon.js v7 supports .spz (Niantic format) and .splat natively via @babylonjs/loaders/gaussianSplatting. Splats are ideal for photorealistic venue backgrounds (captured with Luma AI or Polycam). Not currently used, but the loader is importable.


Sources

Source License Auth needed Best for
Polyhaven CC0 (public domain) None Props, textures, HDRIs
Khronos glTF Sample Models CC0/PD None Test props (helmet, lantern, etc.)
Sketchfab (CC filter) CC0 or CC-BY API token for downloads Interiors, characters, environments
Luma AI Explore Mostly CC-BY None for downloads Gaussian splats of real spaces

Attribution table

four-seasons/venue.glb

dnd/tavern.glb

dnd/dungeon.glb

carol/bedroom.glb (or Polyhaven props)

  • Source: Polyhaven (GothicBed_01, chandelier_01, vintage_oil_lamp) — https://polyhaven.com/models
  • Author: Polyhaven contributors
  • License: CC0 1.0 Universal (public domain — no attribution required)
  • Modifications: GLTF → GLB conversion, 1k texture quality

Adding a new model

  1. Confirm the license at the source (CC0 = free; CC-BY = attribution required; CC-BY-NC = do not use)
  2. Download as GLB if available; otherwise convert GLTF → GLB with gltf-pipeline
  3. Check size: du -sh model.glb — compress if over 5 MB
  4. Place in public/models/<scene-slug>/<name>.glb
  5. Add attribution block to LICENSES.md and this page

Clone this wiki locally