Spline integration guide · English edition October 10, 2026

How to Embed a Spline Scene Without an iframe

A Spline public-page iframe is a quick way to show an interactive scene. A code export gives you a different integration: a canvas within your own page. Hosting a scene file yourself does not automatically remove runtime dependencies, branding conditions, or export restrictions.

The editable project is not the web export

The .spline file in a resource pack is an editable project containing objects, materials, lights, camera settings, and animation. Do not rename it and assume it has become a browser-ready scene. Export the version you want to publish and use the files and runtime initialization supplied for that export.

A supported starting workflow

  1. Open a copy of the project in Spline. Adjust the camera and materials for the space available on your page.
  2. Use Export → Code and choose the code target appropriate for your site, such as Vanilla JS.
  3. Review the generated code and available download options. Keep its dependencies and file paths together; serve it through HTTP rather than opening module-based exports as local file URLs.
  4. Integrate the canvas and exported files, then test loading, framing, scroll behavior, and errors on your target devices.

See Spline's code export documentation for the current workflow. Available options depend on your account and export target.

The earlier local-runtime example

The Spanish source shows a version-specific integration used by Lienzo: a canvas, a pinned runtime from Spline's CDN, and an exported binary passed to Application.start. It also describes extracting an embedded byte array from a published page. That page structure is not a stable export API, and the working project in the resource ZIP is not that binary. Prefer the supported export workflow above for a new integration.

The following source example is retained for context. Its scene path is a placeholder; it is not a ready-to-run conversion of a downloaded project. Verify the runtime API and the export you actually have before adapting it.

<div style="position:relative;aspect-ratio:16/9">
  <canvas id="escena" style="width:100%;height:100%;display:block"></canvas>
</div>

<script type="module">
  const { Application } = await import(
    'https://cdn.spline.design/@splinetool/runtime@2.0.8/build/runtime.js'
  );
  const app = new Application(document.getElementById('escena'), {
    htmlContentMode: 'inline'
  });
  const datos = await fetch('/ruta/a/tu/escena.spline');
  await app.start(new Uint8Array(await datos.arrayBuffer()));
</script>

The runtime URL is pinned to the source example's version, not claimed to be the latest release. A file you host locally may still depend on a remote runtime or external assets. Measure all requests in the Network panel rather than using the project ZIP size as your page's loading cost.

Code export and fully self-hosted export are different

Spline separately documents a Self-Hosted export that bundles the runtime and assets. Its documentation currently identifies this as an Enterprise feature. Check the options and conditions of your account; a custom canvas does not itself grant permission to redistribute the runtime.

Three integration problems to catch

The current Play Settings documentation recommends Auto for WebGPU with WebGL fallback. Branding removal is controlled by the eligible subscription and export settings, not by replacing an iframe.

When an iframe is enough

For a one-off page in a visual site builder, a public embed may be the simpler choice. A canvas integration is useful when the scene is a lasting part of your site and you need control over its placement or loading. It still needs a renderer, a supported device, and maintenance as the export changes.

Frequently asked questions

Can I point an iframe at the .spline project from the ZIP?

No. It is an editable Spline project, not an HTML page or automatically a web runtime export. Open it in the editor and publish or export the version you want to display.

Does this remove the Spline logo?

Not automatically. Use the branding controls allowed by your current subscription and export settings. A custom canvas is not a substitute for those conditions.

Will the same framing work on every phone?

Not necessarily. Test the camera, layout ratio, rendering support, and touch behavior on real devices. Keep a static alternative for cases where live 3D is not appropriate.

Does serving the scene locally eliminate all Spline dependencies?

No. A local scene file may still use a remote Spline runtime or assets. Fully self-hosted export is a separate documented option with its own availability and conditions.

Practice with editable scenes

Try the five-scene pack or the eight web development scenes. Read the resource-specific credits before using a scene in a client project.

Read the original Spanish page · English edition reviewed October 10, 2026.