3dCMS Knowledge Base
Open the editor
Publishing & Hosting

Publishing to the web

Turn your scene into a public, crawlable page with a shareable link, and understand exactly what gets built.

Open in the interactive manual →

The interactive version has full-text search, a table of contents, and light/dark themes.


Publishing turns your scene into a live, public page anyone can visit, no login required to view it.

How to publish

  1. Press Publish

    It's a button on the menu bar itself, at the right-hand end beside Save, and it's the only accent-coloured control in the editor, on purpose. Ctrl+Shift+P does the same thing, as does File ▸ Publish…. On a phone the button rides the viewport pill row rather than hiding in the Menu drawer. A dialog asks for a Published name: it defaults to your scene's name, and under it shows the address that name will produce plus a live scene-weight meter, so the URL and the cost are both visible before you commit rather than after.

  2. Give it a real name

    If the field still holds a name the editor supplied ("New Site", "Untitled", "My scene" and the like), a line appears under it saying so. That matters because the published name does not stay in the editor: it becomes the page's title, its heading, the sentence in its meta description, the slug in its URL, and the line a stranger reads in a search result or in every shared link. It is a nudge and never a block: if a name that looks like a placeholder is genuinely the one you want, publish anyway.

  3. Click Publish

    3dCMS builds the page and opens a Share dialog: the link is already copied to your clipboard, and the popup stays put with Copy, Open ↗, and one-click share targets (the native share sheet where the device offers one, plus X, Facebook, LinkedIn, and Email). Click Done to dismiss it: it never vanishes out from under you mid-copy.

The Share dialog also shows two extras: a preview of the social card people will see when the link is shared (see below), and a scannable QR code of the link. Right-click it to Save image as… and keep the code to print or drop on a flyer.

Short links

Handle-based URLs are memorable but not exactly short. Click Get a short link in the Share dialog and 3dCMS mints a tidy one for this scene:

https://3dcms.info/s/<code>

Visiting it redirects to the scene's normal published URL. A few things worth knowing:

  • It's on request only. Nothing is created until you ask, so scenes you never share don't accumulate codes.
  • One code per scene, forever. Ask again and you get the same link back, safe to print, and it keeps working across re-publishes.
  • It only ever points at your scene. The destination is worked out on the server from a site you own, never sent up from the browser, so a /s/ link can't be bent into pointing somewhere else.
  • The QR code follows it. Once a short link exists, the QR in the dialog re-encodes to it: a shorter URL makes a coarser, easier-to-scan code, which matters on a printed flyer or a slide.
  • Publish first. A scene needs to be published to have a canonical URL to redirect to, so the button lives in the post-publish Share dialog.

What else the Share dialog offers

  • Show on Explore & your profile: a checkbox that lists (or hides) this site in the public Explore gallery and on your creator profile. It's on by default and reflects the site's real state, so re-publishing a site you'd previously hidden keeps it hidden.
  • Views so far: once your published site has any traffic, its view count shows here too.
  • First-publish celebration: the very first time you ever publish, the dialog greets you with a one-time celebration and a nudge to share your new link. You'll only ever see it once.
  • The scene-weight meter: how expensive your scene is to render, scored and broken down by category. See scene weight.
  • Export site (.zip): download the whole published site as a self-contained bundle you can host anywhere. See download your site.

Your scene goes live at a memorable, handle-based URL:

https://3dcms.info/<your-handle>/sites/<slug>/

The slug is derived from the name automatically: you don't hand-pick it.

Where visitors land (spawn pose)

Publishing captures your current editor camera as the pose visitors open the scene at. Frame the shot you want, then publish. To lock a spawn that survives future publishes, open Settings ▸ Visitor Spawn, line up the view, and click Set spawn to current view (a pinned spawn overrides both the auto-capture and any Entry camera or page). Clear it there to fall back to capture-at-publish.

The social card (link preview)

The same publish also snaps a thumbnail of your scene from that camera and uses it as the site's social card, the image that appears when the link is pasted into a chat, a post, or a message. It becomes the page's Open Graph and Twitter image (a hero image, if set, is the fallback when no shot is captured). Because it's taken from your publish camera, framing a good spawn shot doubles as framing a good link preview, one more reason to line up the view before you publish.

What publishing builds

Behind that one click, the server generates, at publish time:

  • A static HTML page for every page in your scene: fast, cacheable, no runtime needed.
  • A plain-text mirror of each page (clean reading for AI crawlers).
  • A sitemap, robots.txt, llms.txt, and scene.json for the site.
  • An instant search-engine ping (IndexNow) so new and changed pages get noticed quickly.

It's all covered in SEO & AI-readability.

When a publish is refused

One thing can stop a publish: a scene that's far too heavy to render. Over the scene-weight red line you get a warning and the publish goes through anyway; only past the hard cap is it blocked, and then a dialog names the heaviest categories so you can trim them and publish again.

There's a second, separate limit on the same screen: a scene holding more than about 1,400 MB of estimated texture memory is refused even when its points total looks fine, because that much texture reliably kills a phone's browser tab rather than merely slowing it. The message says so, and the fix is usually to reuse one model in place of several near-identical ones: texture memory is charged per unique model, not per copy.

What a publish warns you about

Separate from a refusal, a publish that succeeds can still come back with an advisory warning. It appears in the Share dialog, just above the scene-weight meter, in amber rather than error red: the publish worked, and this is the one thing worth fixing before you send anyone the link. Three things produce one, and they are joined rather than one hiding the other.

  • A scene over the weight red line: heavy enough to be worth trimming, not heavy enough to block.
  • An image hot-linked from another website: worth knowing about because it has no visible edge. Those pictures are fetched through a signed-in-only proxy, so they render perfectly for you and show as an empty plane for every visitor. The warning names the offending nodes; the fix is to upload the file to your asset library and point the block at that copy.
  • A page that gives a search engine almost no text: under about 60 words of readable body copy, counted from the page that actually ships. See how much text your page really gives a crawler.

The check runs on every publish, which is the point: the scene lint alone only reaches edits made through Claude or the Assistant, and pasting an address into Properties by hand is exactly how the mistake gets made. An image slot that a template personalizes is exempt: its address is a placeholder your clone replaces with your own picture, so there is nothing to fix.

Stepping back into the editor from your live page

Walk your published site, spot something to fix, and the viewer's Menu has Edit this scene waiting: it opens the editor on this scene, the source it was published from, rather than wherever you were last.

It's yours alone. The page asks who's reading it, and a visitor who isn't the owner simply never sees the entry: signed out or signed in as someone else, there's no editor door to knock on. (Before, everyone got it, and it led strangers to a sign-in wall or to their own unrelated scene.) An embedded scene (below) never shows it either, since an embed is a widget on someone else's page. On your own draft preview, where the surface is already yours, the same entry reads Open editor as it always has.

Embedding a scene in someone else's page

A published site can also live inside another page: a blog post, a portfolio, a client's CMS. Wherever your public URLs are listed (Settings ▸ Sites and your Account page), each site has an Embed toggle that builds a ready-to-paste <iframe> snippet for you. Pick from two dropdowns, then copy:

ChoiceOptions
StyleJust the scene (the bare iframe, the default) or Framed card, the treatment from the 3dCMS home page: the scene in a rounded frame with a caption naming it and its author and an Open it full-size → link.
SizeResponsive · 16:9 (the default), Responsive · 4:3, Square · 1:1, or Fixed · 800×450. The responsive presets are full-width and hold their shape; the fixed one is exact pixels.

The embedded view is chrome-free (the 3D scene and its floating controls, no editor header), and it's allowed to go fullscreen, play audio and video, and use device orientation on a phone. There's no reactions bar, no guestbook, no Share and no Report: those belong on the scene's own page, not on someone else's.

It does carry two small pills on the top bar: a 3dCMS one that opens your scene full-size in a new tab, and a Build your own → one pointing at the sign-up. That's the trade for free hosting: an embed reaches an audience that isn't ours, and those two links are the only thing we ask of it. On a paid plan you can turn both off along with the rest of the 3dCMS branding, and the embed carries nothing but your scene. (An embed shows no branding at all, including your own.) (They also disappear automatically when a scene is embedded on 3dcms.info itself, where pitching 3dCMS at a reader already on it would be a loop.)

Two details make the Framed card worth the extra lines. Your social card image sits behind the frame, so the box shows your scene's own poster while the 3D loads instead of a blank rectangle. And the full-size link is an ordinary link, so it still works if the host page blocks iframes, if JavaScript is off, or when a crawler reads the page. The snippet is entirely self-contained (inline styles, no class names to collide with the host site's CSS), and the iframe inside it is identical to the plain one, so the prettier choice never costs you a capability.

Draft vs published

Preview (and the editor) show your working draft, not public. Publish produces the public copy. They're independent: editing your scene doesn't change the live site until you publish again. Re-publishing overwrites the site and tidily prunes pages you removed or renamed, so no ghost URLs linger.

Publishing over an existing site asks first 3dCMS matches a re-publish to the site it belongs to. When it can only match by name (a scene that isn't linked to one of your saved cloud scenes, published under a name a live site already uses), it stops and asks: "Publishing as X will replace your live site Y with this scene." Say yes and it replaces it; rename first and you get a new site instead. Before, a fresh scene that happened to share a name could quietly overwrite a live one.
Spotted something off, or want a topic covered? Email hello@3dcms.info.