I'm trying to create a 3D Cardioid, for which I would like to control/adjust the thickness along the axis perpendicular to the cusp. Do I use the cardioid's parametric equations for X and Y? What about Z? I'm getting "Error Evaluating Expression."
Asked
Active
Viewed 519 times
4
-
Need more details about your setup… – Markus von Broady Sep 27 '23 at 12:47
-
If you get an error, show us the error and the code/driver expression which produces the error. Best would be the blend file itself https://blend-exchange.com/ – taiyo Sep 27 '23 at 14:37
1 Answers
7
Cardioid with Geometry Nodes
I was able to make a basic cardioid using Blender's Geometry Nodes by following the parametric equations for X and Y on the wikipedia page
- Add a new
Geometry Nodesmodifier to the default cube. - Add a
Curve Circlenode and connect it to theGeometryoutput. Increase theResolutionto get a smoother curve. - Insert a
Set Positionnode after theCurve Circlenode. - Use a
Spline Parameternode to get the angle around the unit circle. TheFactoroutput gives0.0to1.0where1.0represents a full turn. We want a full turn to be2 * piso add aMultiplynode after theFactoroutput. You can type2 * piand Blender will recognize that. I'll call this parameter t from now on - Use
Mathnodes to to set up simplified parametric equations forXandY$$x(t) = 2\cos t - \cos 2t$$ $$y(t) = 2\sin t - \sin 2t$$ - Combine
XandYwith aCombine XYZnode and plug that into thePositioninput of theSet Positionnode.
Controlling Width
A Multiply node can be added after the calculation for x(t) to make the whole curve wider along the axis where the cusp sits. This is effectively introducing a back into the parametric equation. $$x(t) = a(2\cos t - \cos 2t)$$
The Z Dimension
Without a specific description of how the final 3D Cardioid should look it's hard to give guidance, but a cool way I found to bring the Z dimension into it was to add nodes for $$z(t) = \sin t$$ and then mess with the Multiply nodes on the Spline Parameter Factor.
Fletcher Graham
- 816
- 6


