2.4.5 • Public • Published


Serializer of JSCAD geometries to X3D shapes

NPM version NPM downloads Build Status Stability License

User Group Lerna JavaScript Style Guide

Backers Sponsors

Open Collective


This serializer outputs a 'blobable' array of data from one or more JSCAD geometries. The array of data can either be used to create a Blob (new Blob(blobable)), or converted to a Node.js buffer.

The serialization of the following geometries are possible.

  • serialization of 3D geometries (geom3) to X3D IndexedTriangleSet (a unique mesh containing coordinates)
  • serialization of 2D geometries (geom2) to X3D Polyline2D
  • serialization of 2D paths (path2) to X3D Polyline2D

The id attribute is used as the DEF name for the generated X3D shape when found on a geometry.
Material (color) is added to X3D shapes when found on a geometry.

All shapes are wrapped in a rotation transform to align the positive Z direction of JSCAD with the vertical up direction in X3D.

Table of Contents


npm install @jscad/x3d-serializer


const x3dSerializer = require('@jscad/x3d-serializer')

const rawData = x3dSerializer.serialize({unit: 'inch'}, geometry)

//in browser (with browserify etc)
const blob = new Blob(rawData)


The various JSCAD packages and all source code are part of the JSCAD Organization, and maintained by a group of volunteers. We welcome and encourage anyone to pitch in but please take a moment to read the following guidelines.

  • If you want to submit a bug report please make sure to follow the Reporting Issues guide. Bug reports are accepted as Issues via GitHub.

  • If you want to submit a change or a patch, please read the Contributing Guide. New contributions are accepted as Pull Requests via GitHub.

  • We only accept bug reports and pull requests on GitHub.

  • If you have a question about how to use JSCAD, then please start a conversation at the JSCAD User Group. You might find the answer in the JSCAD User Guide.

  • If you have a change or new feature in mind, please start a conversation with the Core Developers and start contributing changes.

Small Note: If editing this README, please conform to the standard-readme specification.


The MIT License (MIT) (unless specified otherwise)

Package Sidebar


DownloadsWeekly Downloads






Unpacked Size

35.9 kB

Total Files


Last publish


  • z3dev
  • mister-jscad
  • simon_clark