Open Components for 3D Tools
Building an interactive 3D design tool today takes a huge amount of effort and expertise. What's the right way to implement 3D camera controls, or a 3D widget to rotate around an arbitrary axis? For 2D we have Qt, and for games we have Unity, but if you want to build a CAD-like 3D user interface, you're on your own.
After a decade spent making 3D tools from scratch, we've figured out a thing or two about how to design reusable frameworks for CAD-style apps. Based on this experience we're developing a new iteration of our 3D design-tool architecture. These components are at the core of gradientspace projects - we're working with them, and on them, every day.
But they're also "just infrastructure", and open infrastructure is always better in the long run. So we're making these components open-source, with commercial friendly licenses. They'll help you get started with building your own 3D tools.
And if you need a hand, get in touch. -RMS
A Unity-compatible C# library for geometric computations like 2D/3D Vector Math, Curves and Surfaces, Spatial Queries, and Implicit Surfaces. A powerful adaptive triangle mesh class, and many mesh processing algorithms, like Remeshing and Simplification. Boost License, completely free for commercial use. See the Github Readme for more details. Samples and Demos here. A Nuget package is also available.
A 3D CAD application framework built on Unity. Build and deploy a CAD app for VR, Desktop, and Mobile from the same codebase. MIT License. Sample apps here. Note: Under very active development - fork it!
A C# library for converting 3D triangle meshes into GCode toolpaths suitable for 3D printing, on your Makerbot, RepRap, or what-have-you. Under active development, but already quite functional. Excellent handling of overlapping shells and open-sheet meshes. MIT License. See the gsSlicerApps repository for in-progress front-end apps.
A C# library for GCode I/O. Generat GCode from 2D and 3D polyline/polygon paths, or parse an existing GCode file back into those paths, change them, and write it back out. If you want to start with a mesh, use gsSlicer. If you want to directly control your 3D printer, gsGCode will handle all the messy stuff for you. MIT License.
A C++ library for geometric computing and mesh processing. Under development, but don't hold your breath.