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

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}],AxesTrue,AxesStyleOrange,AxesLabel{x,y,z}]
Out[]=
In[]:=
Graphics3D[rings[[1]],AxesTrue,AxesStyleOrange,AxesLabel{x,y,z}]
Out[]=

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
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}]},AxesTrue,AxesStyleOrange]]​​
Out[]=

Surrounding geometric shapes

adding a z - component of value 1 to all 2 D x, y points

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

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

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