Sharing & embeds

Visibility

Publish with the Publish button in the Studio toolbar. Add a name, description, and tags, then pick a visibility — it is enforced on the server:

  • Public — requires sign-in. Listed in /gallery and on your public profile, and embeddable via /embed/{id}.
  • Private — Premium only. Anyone with the share link can view, play, or remix, but the scene is not listed in the gallery, not shown on your profile, and not third-party embeddable. Treat the URL like a secret.

Legacy unlisted shares remain link-readable, but new publishes use Public or Private visibility.

Profiles

Signed-in users can set an optional public @handle, display name, and avatar from Account. Public publishes appear on /u/{handle}. Gallery and share pages link to the author profile when a handle is set.

Embeds

Only public published IDs resolve on /embed/{id}. Modes:

# Orbit viewer only
/embed/{id}?mode=viewer

# Viewer with a Play button
/embed/{id}?mode=viewer-play

# Start directly in play mode
/embed/{id}?mode=play

Example iframe snippet:

<iframe
  src="https://voxie.studio/embed/{id}?mode=viewer-play"
  width="640"
  height="480"
  loading="lazy"
  allow="xr-spatial-tracking; fullscreen"
  title="Voxie scene"
  style="border:0;border-radius:12px;max-width:100%;"
></iframe>

Every publish stores a PNG render at /api/share/{id}/preview. It is the embed poster shown before WebGL activates, the gallery and account thumbnail, and the social/OG image.

Official homepage fixtures use /embed/example/{slug} and do not require a published ID. Framing is allowed for /embed/* only; Studio, account, gallery, and /m/* remain same-origin frame protected.

Studio URLs

The editor lives at /studio. Common entry points:

/studio
/studio?remix={shareId}
/studio?cloud={sceneId}
/studio?agent={id}&token={readToken}
/studio?labs=1

?remix= opens a copy of a published share in your local Studio session. ?labs=1 opens Code Lab (Premium).