Supporting Open Source: xj3d - Shapeways Blog
Supporting Open Source: xj3d
May 5, 2010
We are huge supporters of open source software. The complete architecture of the Shapeways web platform is built around open source software (both commercial and non-commercial). In this post I would like to go into our contributions on Xj3D.
Xj3D is a Java toolkit for working with VRML and X3D content. We use Xj3D throughout our 3D file processing, conversion, and validation chain. And more visibly we also use it in our Shapeways Creators like the LightPoem or Photoshaper creators.
Shapeways has contributed quite a lot of code to Xj3D (approx. 100,000 lines of code). So what have we added? An overview:
- New filters: Combine Shapes – combine multiple shapes in one mesh
- Flatten transform – change a transform hierarchy into global coordinates
- Index – change non-indexed to indexed geometry
- Reindex – detect shared coordinates and change them into shared indexes
- Triangulation – turn any X3D geometry into a flat triangle array
- Center Filter – center an object
- Modify Viewpoint – change the viewpoint or create a new one if not there
The most time went into the ReIndex filter since it was the most difficult to get right. Although the concept is simple, rounding problems with float values gave us some headaches. Collada (read) VRML97 (writing) STL (writing).
The great thing about open source is that you do not have to reinvent the wheel. We know that Xj3D is also used by the American Navy, NASA, and Emerson. And they also contribute back, which benefits Shapeways and you — our community. Photograph used under Creative Commons Attribution, Khrawlings