Conversation

a simple CAD program πŸ™‚πŸ‘


Alpha coming soon!



Design a 3D-printable part in less time than it takes to open SolidWorks 🫠

about

Conversation is a standalone desktop app for designing simple 3D-printed machines.


details

Conversation is a direct-modeling program. Unlike SolidWorks, Conversation's sketching is not constraint-based (just draw stuff and move stuff). Unlike SolidWorks, Conversation does not have a parametric feature tree (just basic undo/redo).

Conversation separates its 2D drawing and 3D geometry. Unlike SolidWorks, Conversation does not absorb 2D sketches into 3D geometry or base 2D sketches on 3D geometry.

Conversation works with "lowest common denominator" filetypes. Conversation uses lines, arcs, and circles to represent 2D geometry and can import/export DXF's. Conversation uses triangle meshes to represent 3D geometry and can import/export the STL's (3MF coming sooon).


code

Conversation is written in "handmade-style" C/C++. We try to avoid external libraries; we do not use the C++ STL. A from-scratch debug build of our codebase (not including external libraries) takes about one second. Our compiled executable is ~1MB.

Conversation uses the amazing open source Manifold library as its geometry kernel. Manifold does fast and precise triangle mesh boolean operations.

Conversation uses GLFW to open a window, create an OpenGL context, and handle user input events in a cross-platform fashion.

Conversation (still) uses stb_easy_font to render text πŸ™ƒ

This website uses MVP.css.


credits

Conversation is written by Jim Bern, Nathan Vosburg, and others.

The spark to actually try writing Conversation was this blog post by Manifold author Emmett Lalish πŸš€ Conversation draws additional inspiration from other CAD programs including OpenSCAD, ManifoldCAD, LAYOUT, QCAD, SketchUp, Shapr, SolidWorks, PowerPoint (jk but only sort of), and others.

We learned how to code in a "handmade-style" from articles and videos by Casey Muratori, Ryan Fleury, Sean Barrett, Vjekoslav KrajačiΔ‡, Mike Acton and others.

All good mathematical code is written by John Burkardt.

Big thanks to my CS345 students for being our guinea pigs 🐹