@bimdata/gltf-to-xkt
v0.0.8
Published
xeokit-gltf-to-xkt converts models from glTF 2.0 to xeokit's optimized .xkt format.
Downloads
29
Readme
xeokit's gltf2xkt
Contents
Overview
xeokit-gltf-to-xkt converts models from glTF 2.0 to
xeokit's optimized .xkt
format.
An .xkt
file is a single BLOB containing a model, compressed using
geometry quantization and zlib.
See the XKT Format
specification for a more detailed description of the .xkt
format.
Once you have .xkt
files, you can load them into your viewer using
XKTLoaderPlugin,
which is the most efficient way to load high-detail models into xeokit.
Click on the screenshot below for a live demo of the XKTLoaderPlugin.
Usage
CLI
Install locally or globally from npm
.
$ npm install xeokit/xeokit-gltf-to-xkt -g
$ gltf2xkt -s scene.gltf -o scene.xkt
$ gltf2xkt --help
Usage: gltf2xkt [options]
Options:
-v, --version output the version number
-s, --source [file] The path to the source gltf file.
-o, --output [file] The path to the target xkt file.
-h, --help output usage information
Programmatically
const Converter = require('gltf2xkt');
const gltfPath = '../bimspot/_sample-data/scene.gltf';
const xktPath = 'scene.xkt';
const gltf2xkt = new Converter(gltfPath, xktPath);
gltf2xkt
.convert()
.then(() => {
console.log('Success');
})
.catch((error) => {
console.error('Something went wrong:', error);
});
Development
// Clone the repo
$ git clone https://github.com/xeokit/xeokit-gltf-to-xkt
$ cd xeokit-gltf-to-xkt
// Install the dependencies
$ npm install
// Link for command line usage
$ npm link
// Use global symlink for testing
$ gltf2xkt -s /path/to/scene.gltf -o /path/to/scene.xkt
See .eslint
and .prettierrc
for code style guide.
Credits
- The
xeokit-gltf-to-xkt
tool and the XKTLoaderPlugin are based on prototypes by Toni Marti at uniZite. Find the original discussion around those prototypes here. - Thanks to Adam Eri at BIMSpot for converting
xeokit-gltf-to-xkt
to work as a CLI tool.
Work Remaining
- [ ] Publish to
npm
. - [ ] At present,
xeokit-gltf-to-xkt
only works with glTF 2.0 models that have base-64 geometry buffers embedded within the glTF JSON.