Namespace scenemodel

xeokit SceneModelParams Importer and Exporter


Import and export renderable SceneModels using xeokit’s JSON-based SceneModelParams interchange format.


This module provides utilities for serializing and deserializing SceneModels to and from the SDK’s canonical JSON representation, SceneModelParams. The format captures a SceneModel’s complete renderable state, including geometry, meshes, textures, materials, transforms, and coordinate-system information.



%%{init:{"theme":"dark"}}%% classDiagram direction TB class SceneModelImporter { +format : "SceneModelParams" +load(params, options?) Promise~void~ } class SceneModelExporter { +format : "SceneModelParams" +write(params, options?) Promise~SceneModelParams~ } class SceneModelParams { <<scene>> } class ModelLoader { <<formats>> } class ModelExporter { <<formats>> } ModelLoader <|-- SceneModelImporter ModelExporter <|-- SceneModelExporter SceneModelImporter ..> SceneModelParams : reads SceneModelExporter ..> SceneModelParams : writes
%%{init:{"theme":"default"}}%% classDiagram direction TB class SceneModelImporter { +format : "SceneModelParams" +load(params, options?) Promise~void~ } class SceneModelExporter { +format : "SceneModelParams" +write(params, options?) Promise~SceneModelParams~ } class SceneModelParams { <<scene>> } class ModelLoader { <<formats>> } class ModelExporter { <<formats>> } ModelLoader <|-- SceneModelImporter ModelExporter <|-- SceneModelExporter SceneModelImporter ..> SceneModelParams : reads SceneModelExporter ..> SceneModelParams : writes
classDiagram
    direction TB
    class SceneModelImporter {
      +format : "SceneModelParams"
      +load(params, options?) Promise~void~
    }
    class SceneModelExporter {
      +format : "SceneModelParams"
      +write(params, options?) Promise~SceneModelParams~
    }
    class SceneModelParams {
      <<scene>>
    }
    class ModelLoader {
      <<formats>>
    }
    class ModelExporter {
      <<formats>>
    }
    ModelLoader <|-- SceneModelImporter
    ModelExporter <|-- SceneModelExporter
    SceneModelImporter ..> SceneModelParams : reads
    SceneModelExporter ..> SceneModelParams : writes

  • xeokit-native JSON — round-trips a SceneModel to and from SceneModelParams JSON.
  • Lossless — captures geometry buffers, textures, materials, transforms, and the model's origin / scale / basis triplet, so re-loading reproduces the original SceneModel without re-tessellating or re-quantizing.
  • Inspectable — a single JSON document the host can diff, hand-edit, and version-control; useful as a debugging dump or fixture format in tests.

npm install @xeokit/sdk

Use SceneModelExporter to serialize a SceneModel into a SceneModelParams object, which can then be stored or transmitted as JSON.

write resolves with the SceneModelParams object itself — stringify it yourself to persist it.

import { SceneModelExporter } from "@xeokit/sdk/scenemodel";

const exporter = new SceneModelExporter();

const sceneModelParams = await exporter.write({
sceneModel
});

const json = JSON.stringify(sceneModelParams, null, 2);
// persist or transmit `json`

Use SceneModelImporter to reconstruct a SceneModel from a previously serialized SceneModelParams object. Create the target SceneModel first, pass the params as fileData, then build it once loaded — load resolves with no value.

import { SceneModelImporter } from "@xeokit/sdk/scenemodel";
import { Scene } from "@xeokit/sdk/model/scene";

const scene = new Scene();
const sceneModel = scene.createModel({ id: "myModel" }).value;

const loader = new SceneModelImporter();

await loader.load({
fileData: sceneModelParams,
sceneModel
});

console.log("SceneModel loaded:", sceneModel.id);

SceneModelParams is a lossless representation of a SceneModel’s internal state. A SceneModel can be exported and re-imported without changing geometry IDs, object IDs, transforms, or coordinate-system settings, making this format suitable for caching and synchronization workflows.


Documents

SceneModelParams Format Guide

Classes

SceneModelExporter
SceneModelImporter