Love Heart Jewelry
By Frederick Wu
By Frederick Wu
1. Prologue
1. Prologue
My wife, Julia, and I have been married for 12 years, and we are raising two kids. However, she never received any jewelry from me. I once plotted a few diamonds for her, but that was just a kind of mentally jewelry, still not physical jewelry. Me, being an ungenerous husband, always shrouded in my heart.
A few weeks before, I suddenly got an idea with the progressing of Wolfram Language and rapidly developing of 3D printing technology. Why not design and make a jewelry for my lover? So I implemented my idea with below steps.
2. Design
2. Design
2.1 Heart Curve (1D Curve)
2.1 Heart Curve (1D Curve)
First, I download a first heart curve for WA.
In[]:=
PlaneCurveData,"CartesianEquation"
Out[]=
Functiona.,Functionx.,y.,a.
3
+-
2
x.
2
y.
2
a.
2
x.
3
y.
It’s an implicit equation and looks like a very standard heart shape. Parameter a can be used to control its size.
In[]:=
With[{a=1},ContourPlot[a,{x,-2,2},{y,-2,2},MaxRecursion3,ContourStyleDirective[Blue,Thick]]]
3
(+-)
2
x
2
y
2
a
2
x
3
y
Out[]=
One heart is not quiet enough to express my feelings. So, I replace x and y with trigonometric function. That generates a periodical heart pattern as shown in RegionPlot below. I will use this 2D curve pattern for mapping later.
In[]:=
Module[{x,y,a=0.75,expression},expression=-a/.{xSin[12u],yCos[12v]};RegionPlot[expression≥0,{u,-Pi/2,Pi/2},{v,-Pi/2,Pi/2},MeshAll,PlotPoints50,MaxRecursion3]]
3
(+-)
2
x
2
y
2
a
2
x
3
y
Out[]=
2.2 Heart Surface (2D Surface)
2.2 Heart Surface (2D Surface)
I searched all existing 2D heart surfaces in WA, Demonstrations and MathWorld. They are all implicit equations. However, I need a parametric equations to plot in 3D.
In[]:=
SurfaceData,"CartesianEquation"
Out[]=
Functiona.,Functionx.,y.,z.,++-1--0
3
2
x.
2
3
2
2
y.
2
z.
2
x.
3
z.
1
20
2
3
2
2
y.
3
z.
In[]:=
SurfaceData,"ParametricEquations"
Out[]=
Missing[NotAvailable]
So I went back to MathWorld and found that one of 2D heart curves (No. 6) is in simple parametric form.
In[]:=
ParametricPlot[{12Sin[t]-4Sin[3t],13Cos[t]-5Cos[2t]-2Cos[3t]-Cos[4t]},{t,0,2Pi},PlotStyleDirective[Red,Thick],PlotLabelStyle["MathWorld 6th heart curve",14,Bold]]
Out[]=
I modified the parameter of this curve a little bit, so that the bottom corner {0,-19} is not too sharp.
In[]:=
ParametricPlot[{15Sin[t]-4Sin[3t],15Cos[t]-5Cos[2t]-2Cos[3t]-Cos[2t]},{t,0,2Pi},PlotStyleDirective[Red,Thick],PlotLabelStyle["modified heart curve",14,Bold]]
Out[]=
The parametric representation has several advantages.
◼
1. Like the explicit representation, the parametric representation is easy to render: simply evaluate the coordinate functions at various values of the parameters.
◼
2. Like implicit equations, parametric equations can also be used to represent closed curves and surfaces as well as curves and surfaces that self-intersect.
◼
3. In addition, the parametric representation has another advantage : it is easy to extend to higher dimensions.
To further illustrate point 3:
if we want to represent a curve in 3D-space, all we need to do is to introduce an additional equation with one variable z = z(t), like spiral curve in 3D.
If we want to represent a surface in 3D-space, all we need to do is to introduce one set of equations with two variables x = x(u,v), y = y(u,v), z = z(u,v).
if we want to represent a curve in 3D-space, all we need to do is to introduce an additional equation with one variable z = z(t), like spiral curve in 3D.
If we want to represent a surface in 3D-space, all we need to do is to introduce one set of equations with two variables x = x(u,v), y = y(u,v), z = z(u,v).
Again, I modified the above curve equation and upgraded it into a novel parametric equations surface in 3D. Suddenly, I found Julia’s parametric heart surface equation.
Julia'sparametricheartsurfaceequationx=Sin[v](15Sin[u]-4Sin[3u])y=8Cos[v]z=Sin[v](15Cos[u]-5Cos[2u]-2Cos[3u]-Cos[2u])
(
1
)In[]:=
ParametricPlot3D[{Sin[v](15Sin[u]-4Sin[3u]),8Cos[v],Sin[v](15Cos[u]-5Cos[2u]-2Cos[3u]-Cos[2u])},{u,0,2Pi},{v,0,Pi},AxesTrue,AxesLabel{"x","y","z"},PlotStyleRed,PlotLabelStyle["Julia's parametric heart surface",14,Bold],ViewPointFront,ImageSize350{1,1}]
Out[]=
2.3 Heart Model (3D Volume)
2.3 Heart Model (3D Volume)
Now, let’s join 2D plane heart curve and 3D heart surface together. I take out my periodical heart curve pattern in function form.
Apply RegionFunction to map 2D plane pattern on 3D heart surface. PlotTheme option “ThickSurface” converts a surface into a volume automatically. Tips: Use MaxRecursion and PlotPoints to balance running-speed and quality-resolution for a final discrete model.
This is my heart. Export my heart into STL file format. Design is done within 3 lines of Wolfram code. It takes a few hours to run the code and generates a 240 MB STL file.
3. Manufacture
3. Manufacture
I sent my heart STL file to a vendor with Multi-Jet Printing Services. They print a wax part shown in the left image, then use the wax model to cast a metal part shown in the right image .
Multi-Jet Printing (MJP) is a technology uses a print-head to deposit casting wax material or photo-curable resin onto a printer platform. The process builds extremely detailed parts, and is coupled with a dissolvable or meltable support. Based on detailed wax parts and lost-wax casting processing to produce a final metal jeweleries in platinum, gold, silver or copper. Mechanical-polishing and electroplating are frequently used as post-processing. Depending on material, size, processing and local marketing, a customized 3D printing jewelry costs from 20 to 200 $ (US Dollars).
4. Prototype
4. Prototype
The prototype is made by 925 silver and polished surface. The idea is to create a complex geometric heart jewelry, with over 100 heart shapes within a limited 3D space (30X25X13mm). There are three kinds of heart forms can be seen.
◼
1. One big heart surface in 3D shell form;
◼
2. About 12 median hearts along contours in an implicit form;
◼
3. Over 100 small and tiny hollow heart pattern in different shapes;
Julia got a jewelry from her husband, finally.
5. Review
5. Review
◼
Proposed a novel heart surface, Julia’s parametric heart surface equation;
◼
Pure math art, mapping heart curves along heart contours on heart surface as a heart jewelry;
◼
Maximum number of heart shapes or patterns within a limited volume;
◼
Tailed-made for customer service and unique design in worldwide;
◼
Short Wolfram Language code, 3 lines code exports a model in STL file;
◼
One-piece Integrated manufacture, 3D printing MJP wax part and lost-wax casting;
6. Epilogue
6. Epilogue
With computational power of Wolfram Language and advanced 3D printing technology, there are still millions of unique design jewelries waiting for man, as husband, boyfriend, father, son, son-in-law...etc. As James Brown’s lyrics, (I modified a little bit. Sorry, I can’t find a better one.)
This is a man's world,
This is a man's world,
...
You see, man made the jewelries
To make people shining.
...
But it wouldn’t be nothing,
Nothing without a woman or a girl.
This is a man's world,
...
You see, man made the jewelries
To make people shining.
...
But it wouldn’t be nothing,
Nothing without a woman or a girl.