This project uses Wolfram Language to create a 3D model inspired by “The Little Prince.” Techniques include mesh generation, geometric transformations, and surface modeling. Visuals capture the essence of the story through spherical and polygonal structures. Key algorithms ensure precise modeling and smooth rendering. The result is an artistic representation combining storytelling with advanced computational methods.
The Globe
The Globe
Creating spherical structure resembling a globe. It’s outlined with a yellow grid, indicating the surface of a planet.
In[]:=
rad=10;tubesize=.2;tuberadii1=radSqrt[1-(3./4.)^2];tuberadii2=radSqrt[1-(2./4.)^2];tuberadii3=radSqrt[1-(1./4.)^2];tuberadii4=rad;tuberadii5=radSqrt[1-(1./4.)^2];tuberadii6=radSqrt[1-(2./4.)^2];tuberadii7=radSqrt[1-(3./4.)^2];z1=rad*3./4.;z2=rad*2./4.;z3=rad*1./4.;z4=rad*0.;z5=-rad*1./4.;z6=-rad*2./4.;z7=-rad*3./4.;rings=Graphics3D[Translate[Rotate[Scale[{{Yellow,Tube[BSplineCurve[Table[{tuberadii1Cos[t],tuberadii1Sin[t],z1},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{tuberadii2Cos[t],tuberadii2Sin[t],z2},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{tuberadii3Cos[t],tuberadii3Sin[t],z3},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{tuberadii4Cos[t],tuberadii4Sin[t],z4},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{tuberadii5Cos[t],tuberadii5Sin[t],z5},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{tuberadii6Cos[t],tuberadii6Sin[t],z6},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{tuberadii7Cos[t],tuberadii7Sin[t],z7},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{radCos[t],0,radSin[t]},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{radCos[t]Cos[30Degree],radCos[t]Sin[30Degree],radSin[t]},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{-radCos[t]Cos[30Degree],radCos[t]Sin[30Degree],radSin[t]},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{radCos[t]Cos[60Degree],radCos[t]Sin[60Degree],radSin[t]},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{-radCos[t]Cos[60Degree],radCos[t]Sin[60Degree],radSin[t]},{t,0,2Pi,Pi/20}]],tubesize],Tube[BSplineCurve[Table[{-radCos[t]0,radCos[t],radSin[t]},{t,0,2Pi,Pi/20}]],tubesize]}},{20.,20.,20.},{0.,0.,0.}],90Degree,{1,0,0}],{395,390,40}],AxesTrue,AxesStyleOrange,AxesLabel{x,y,z}]
Out[]=
In[]:=
Graphics3D[rings[[1]],AxesTrue,AxesStyleOrange,AxesLabel{x,y,z}]
Out[]=
The Little Prince
The Little Prince
Inside the globe, a figure resembling “The Little Prince” can be seen sitting. This character is typically portrayed as a young boy with a simple design, often depicted in a contemplative or relaxed pose.
In[]:=
title1=ColorNegate
;(*generatedwithAIandPS*)
In[]:=
II=ImageMesh[title1];
In[]:=
IIt=TriangulateMesh[II];
In[]:=
temp=MeshPrimitives[IIt,2];
trianglecoords=MeshPrimitives[IIt,2][[All,1]];dim=Dimensions[trianglecoords];nnno=dim[[1]];
Adding a z - component of value 1 to all 2 D x, y points
tt[k_]:=Table[{Join[trianglecoords[[k,i]],{1}]},{i,1,3}];arg11=Table[{tt[i][[1]][[1]],tt[i][[2]][[1]],tt[i][[3]][[1]]},{i,1,dim[[1]]}];polTable=Table[Polygon[{tt[i][[1]][[1]],tt[i][[2]][[1]],tt[i][[3]][[1]]}],{i,1,dim[[1]]}];Graphics3D[{Black,polTable}];
tt2[k_]:=Table[{Join[trianglecoords[[k,i]],{20}]},{i,1,3}]
polTable2=Table[Polygon[{tt2[i][[1]][[1]],tt2[i][[2]][[1]],tt2[i][[3]][[1]]}],{i,1,dim[[1]]}];
Barycenter of a polygon
https://mathematica.stackexchange.com/questions/18196/thick-polygons-in-graphics3d
https://mathematica.stackexchange.com/questions/18196/thick-polygons-in-graphics3d
averagepoints[points_?MatrixQ]:=Mean[If[TrueQ[First[points]==Last[points]],Most,Identity][points]]
Newell’ s algorithm for face normals
newellNormals[pts_?MatrixQ]:=Module[{tp=Transpose[pts]},Normalize[MapThread[Dot,{RotateLeft[ListConvolve[{{-1,1}},tp,{-1,-1}]],RotateRight[ListConvolve[{{1,1}},tp,{-1,-1}]]}]]]thickenaux[points_,thick_]:=Module[{center=averagepoints[points],nrm=newellNormals[points],outerpoints,radialpoints},outerpoints=Map[TranslationTransform[thicknrm],points];radialpoints=MapThread[Join[#1,Reverse[#2]]&,Map[Partition[#,2,1,1]&,{points,outerpoints}]];Flatten[{Polygon[Reverse[points]],Polygon/@radialpoints,Polygon[outerpoints]}]]ThickenPolygons[shape_,thick_:30.]:=shape/.Polygon[p_?MatrixQ]:>thickenaux[p,thick](*0.04*)
man3D=ThickenPolygons[Graphics3D[{Gray,Translate[Scale[polTable2,{0.2,0.2,0.4}],{10,185,202}]},AxesTrue,AxesStyleOrange]]
Out[]=
Surrounding geometric shapes
Surrounding geometric shapes
adding a z - component of value 1 to all 2 D x, y points
The Tree
The Tree
At the top of the globe, there’s a stylized tree, which appears to have a branched structure. This tree could symbolize growth, nature, or the connection between different worlds, a theme that resonates with the story.
barycenter of a polygon
https://mathematica.stackexchange.com/questions/18196/thick-polygons-in-graphics3d
https://mathematica.stackexchange.com/questions/18196/thick-polygons-in-graphics3d
Base of the Globe
Base of the Globe
The globe is supported by a solid, orange base that tapers as it rises. This base adds stability to the model and can symbolize the foundation of the prince’s world or his experiences.
Assembly
Assembly
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
The little prince: a 3D model inspired after Le Petit Prince (1943) by Antoine de Saint-Exupéry
by Gilmer Allen Gary
Wolfram Community, STAFF PICKS, October 21, 2024
https://community.wolfram.com/groups/-/m/t/3303974
by Gilmer Allen Gary
Wolfram Community, STAFF PICKS, October 21, 2024
https://community.wolfram.com/groups/-/m/t/3303974