Resolution-free 3d modeling
Challenge
In theory, 3d printers are useful for fixing many things around the home. And people look for parts to fix their home. But drawing in three dimensions is hard for most people!
This project aims to improve this.
Simplify 3d-drawing of technical parts
We are exploring the challenge to build an easy-to-use tool for 3d-designing. We focus our effort on simpler parts such as technical parts, adapters and replacement parts - the challenge to simplify the drawing of fancy dragons and elves is beyond the scope of this project.
Easy for beginners, powerful for experts
The requirements we want to address are:
- No software installation is required
- It's impossible to design "non-manifold" (i.e., non-printable) geometry.
- There are multiple usage levels: it's easy for beginners, powerful for experts.
Approach
We solve the no installation requirement by writing this application for the web.
To address the always printable requirement, we use a mathematical concept called "signed distance functions" (SDFs). SDFs let us design objects using mathematical functions.
For supporting different levels of user expertise, there are a number of possible approaches. In increasing complexity, they are:
- Experts draw shapes, beginners adjust their dimensions
- Experts add Lego-like virtual connectors to shapes, and beginners can combine shapes using connectors
- Intermediate users utilize market features from our other project Idea Composition to allow people to re-use improvements from others.
Result
We've built a 3d-design engine from scratch. It's javascript-based and runs on a website.
A website where beginners re-use work by experts
It works using a mechanism that is called parametric design: Experts can write mathematical formulas to design shapes from scratch, beginners can customize all the measurements. We also added tools to draw organic-looking shapes that go beyond the capability of existing tools like OpenSCAD.
There is a beginner-friendly layer on top of this: A simple interface where beginner users can look for ready-made shapes and adjust any of their dimensions.
Designing like building Lego
Finally, a concept we've only implemented under the hood for now are "connectors": These let us create new shapes from existing shapes. We still need to add a simple user interface for connectors, to make them easy to use for beginners.
The website is realized as a multi-language site (English and German). Visit it at cherrykit.com and print some Duplo/Brio-compatible connectors for your nieces and nephews. They work really well!