
Show HN: Physics-based CAD - lochieferrier
http://www.prandtl.design/
======
diegoandrade
This is not Physics-based at all, you need to introduce other variables like
wind speed around the drone, the direction of the wind, angle of attack,
viscosity, etc. This example is parametric modeling at best or a configurator,
not saying that is bad, just has a misleading title. I do not see any real
geometry manipulation or groundbreaking CAD being attempted. Here is a viewer
that Autodesk released this year using javascript.

[https://developer.autodesk.com/](https://developer.autodesk.com/)

~~~
lochieferrier
For sure, there's a lot missing, title is probably misleading. Definitely
nothing new in terms of the CAD, browser CAD has been well done, just look at
professional products like Onshape. Right now it's primitives only for this,
one of the next steps is to look at how full meshes can be optimized. A simple
example of this could be wings:
[https://people.eecs.berkeley.edu/~pabbeel/papers/2013_gp_win...](https://people.eecs.berkeley.edu/~pabbeel/papers/2013_gp_wind_turb.pdf)

------
frik
It's called parametric modelling, and many CAD software use a parametric
kernel (solver). [https://en.wikipedia.org/wiki/Computer-
aided_design](https://en.wikipedia.org/wiki/Computer-aided_design)

Is this somehow different? Please explain

~~~
lochieferrier
The difference is that there is a simple physics model that's driving the
dimensions. So the arms are getting resized according to beam bending, the
battery is a certain size for the energy requirement, motors are sized by
kw/kg and kw/m^3 and so on.

There's definitely ways to make this sort of model in something like
Solidworks through the use of a variables interface that interacts with the
drawing dimensions. Though it can't do any sort of fast optimization with the
physics relations. What's happening here is a guaranteed global optimal design
is being returned for a given set of inputs and objectives in a few seconds.

~~~
veeedz
This sounds interesting but I can't react the site. Could you please explain
how you get a guaranteed optimum? What if you have conflicting objectives?

~~~
lochieferrier
I think by react you meant react to, which was fair enough, it was dodgy as.
Now running well.

The property of getting a guaranteed optimum is something that arises from
setting the design problem up as a geometric program. You won't always get a
solution (for example, a certain size quad has a minimum prop diameter).
Though if you do, it is guaranteed to be optimum because the problem is convex
as outlined here:
[https://gpkit.readthedocs.io/en/latest/gp101.html](https://gpkit.readthedocs.io/en/latest/gp101.html)

Also, conflicting objectives are naturally traded off until you find a Pareto
optimal solution. Using geometric programs lets you balance conflicts in a
design quickly. This is why they are super useful for aerospace applications,
where you are always looking at a tradeoff between weight and at least one
other variable.

~~~
veeedz
I meant to write reach, sorry. Glad that it's working well now. Thanks for the
reply, and for the link, it sounds like something fun to get into =).

------
kylestlb
Nice project. What are you hoping to add in the future?

Our team works on goal directed design as well, but at the moment it's less of
an interactive optimization tool and more of an involved job running process a
la Optistruct. One of our fun projects was a drone body as well :)

link for the interested:
[https://autodeskresearch.com/projects/dreamcatcher](https://autodeskresearch.com/projects/dreamcatcher)

~~~
lochieferrier
Wow, that is really beautiful. Topology optimization is cool stuff.

I think it's key for optimization to be fast so that the designer can get a
feedback loop going between the computer and the ideas in their head. Would
love to talk about whether geometric programs might help Autodesk generate
topology faster.

Near future stuff is probably a real-world component input (optimized
shopping), and making things more flexible so you can drag and drop something
together from components.

------
bnegreve
Cool, I think more applications should be using solvers like this.

What solver are you using? Is it solved server side?

~~~
lochieferrier
Currently solved server side, though assembled on the client side (see
console) with gpkitjs and then passed through to GPkit.

Packages here:
[https://github.com/lochieferrier/gpkitjs](https://github.com/lochieferrier/gpkitjs)
and here: [https://github.com/hoburg/gpkit](https://github.com/hoburg/gpkit)

Geometric programs are super cool.

------
ade2
Interesting, do you have some more info about how it works? When I make the
battery larger, is it considering the weight of the battery? Weight of motors,
props, etc?

~~~
lochieferrier
Yes it's considering the weight of the battery, as well as the weight of the
motors. It doesn't factor in the props, I didn't get around to that. The props
have inaccurate geometry of course, which I'm looking to fix with a mesher.

Have a look at the console for how the geometric program is assembled.

~~~
ade2
Cool. I think this tool has a lot of potential users, especially if you can
make it pick between commonly available props, esc, motors and so on. Imagine
how cool this would be if it could make a list of those things and export a
3d-printable frame :)

------
sheer_horror
I managed to break the tool by inputting some infeasible inputs and then
changing them again several times, and then refreshing the page.

~~~
lochieferrier
This is my first time putting something up, everything is breaking, fixing it
now.

~~~
oneel
No test like a production test.

------
doczoidberg
this is more a configurator than a CAD.

------
garyfirestorm
That page is broken

~~~
Hydraulix989
Slashdot Effect probs

~~~
lochieferrier
Nope, I just have no idea what I'm doing.

~~~
duncan_bayne
_hugs_

Takes some balls to go live with a project when you're on a step learning
curve. Congrats :)

~~~
lochieferrier
Fixed it, didn't know about pythonpath with gunicorn.

