Skip to the article
3dCMS Knowledge Base
Contact Open the editor
The Consumer View

Fullscreen, audio & accessibility

The defaults that make a 3dCMS site comfortable for everyone: reduced-motion support, audio control, offline resilience, and loading that recovers.

Open in the interactive manual →

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


3dCMS scenes aim to be welcoming out of the box, without you configuring anything.

  • Fullscreen: a one-tap toggle for an immersive, chrome-free view.
  • Audio on the visitor's terms: spatial sound and every video screen's track share one clear mute button, and a muted visit loads no audio at all. Browsers require a tap before any sound plays; until that tap the same button reads "Tap for sound".
  • Reduced motion: visitors who prefer less motion get a calmer experience. Camera flights land instantly instead of gliding, animated objects hold still at their resting pose, and particle emitters freeze their cloud in place rather than drifting. A camera ride that plays once parks them at its end pose, where the author meant the visitor to arrive, rather than at its start. Navigation keeps working exactly the same. Two things switch it on: the visitor's own operating-system preference, or the Pause motion button in the viewer's header (and its overflow menu), which is remembered on that device the same way Mute is, so it holds across every 3dCMS scene until they press it again. On a device that already asks for reduced motion the button is still there, starting pressed, so a visitor who wants the particles and spins back can resume them with one press; that choice is remembered too. The author's Reduce motion setting in the editor is for the author alone and never reaches visitors.
  • Opened from inside an app: a scene reached from a post in Instagram, Facebook, TikTok, Snapchat, Telegram or a similar app opens in that app's built-in browser, which has less memory than a real one and refuses Google sign-in. A dismissible strip under the top bar says so and offers Open in browser plus Copy link; on a host that blocks the jump it names the by-hand route through the app's menu. Signs that link out navigate in the same view there, since a new window may do nothing inside an app. If the page was killed for memory on its last visit, the viewer comes back in its lighter tier on its own.
  • Moving without a mouse: W A S D pan the camera on every published scene, so a visitor who cannot use a pointing device can still move through the space. The ← → keys are left to page-stepping, which is what they do on a multi-page scene, so neither control means two different things depending on the scene. The letter keys can be switched off: the Letter keys move the camera button in the viewer's header (and its overflow menu) turns W, A, S and D off for a visitor who dictates by voice or simply doesn't want them, and like Mute and Pause motion it is remembered on that device across every 3dCMS scene.
  • Keyboard & screen-reader friendly: the menus and search follow standard accessibility patterns. A page change announces the page's name ("Page 2 of 5: The Workshop"), not just its number, so a screen-reader visitor is told where they have arrived rather than how far along they are. A scene with video screens in it puts a real Play / Pause button for each one in the Menu, named after the screen, so a video isn't only reachable by clicking a shape in 3D space. A source that won't play says "video unavailable" and disables its button rather than sitting there looking clickable.
  • Resilient loading: every published scene is normalized as it loads, so even a hand-edited or corrupted file can't wedge the viewer. An offline banner appears if the network drops, and a flaky load retries when the connection returns.
  • When 3D isn't available: a visitor who can't see the scene gets a plain card and a link to the text version of the same page, never a blank rectangle. There are three cases and they read differently, because only one of them is worth retrying. WebGL turned off or blocked (a locked-down work laptop, a hardened privacy browser) says so. The renderer couldn't start, on a device without WebGL 2 or already out of graphics memory, says that and offers no reload button, because reloading fails the same way every time. The view was dropped mid-visit to reclaim memory, usually after the tab sat in the background, is the one that offers Reload: the scene comes back in a lighter version that asks less of the device, and the card says so before the visitor presses it.
  • On a browser too old to run the viewer (iPhones still on iOS 13 or 14, for example), the visitor gets one sentence asking them to update, plus a link to the text version, instead of a white page. iOS 15 is supported.
Your SEO mirror is an accessibility win too Because every page also ships a full semantic HTML version, the content is reachable even where WebGL isn't, a genuine belt-and-suspenders for accessibility and reach.
Spotted something off, or want a topic covered? Tell us, a person reads every message.