Oliver Knill, Mathematica Project,   July 24, 2017

This was done  live in class . Without the radius modification, the pasta would be just a helixoid and too simple to qualify as original. With the modification, it will be fine. Try to be creative. Feel free to combine different parts.

A Pasta

S1=ParametricPlot3D[ {(3+Cos[t/4])s Cos[t],(3+Cos[t/4])s Sin[t],t},{t,0,8Pi},{s,-1,1},PlotPoints->20,Mesh->False,PlotStyle->Thickness[0.2]];
S2=Graphics3D[{Yellow,Sphere[{0,0,0},0.2]}];
S3=Graphics3D[{Yellow,Sphere[{0,0,8Pi},0.2]}];
S=Show[{S1,S2,S3},Axes->False,Boxed->False,PlotRange->All];

"

The following was added after the workshop. It demonstrates how to produce different pasta pieces together. We just rotate and translate randomly:

Graphics3D[Table[Translate[Rotate[S[[1]],2Pi Random[],{Random[],Random[],Random[]}],{70Random[],70Random[],2Random[]}],{8}]]

Also this was done  live in class . After class, I showed somebody how to use tubes and rotate objects. Added here a sugar cage made of tubes.

A Desert

S1={Yellow, Cone[{{0,0,4},{0,0,0}}]};
S2= {Red,Sphere[{0,0,4},1]};
S3=Table[t=2Pi Random[]; s=Pi Random[];{Hue[Random[]],Sphere[{Cos[t] Sin[s],Sin[t]Sin[s],4+
Cos[s]},0.1]},{1000}];
S4={Brown,Cylinder[{{0,0,4},{2,2,5}},0.2]};
T={Orange,Tube[Table[{Cos[t], Sin[t],Sin[t]},{t,0,2Pi,0.02}],0.04]};
S5=Table[Translate[Rotate[T,k Pi/6,{1,0,0}],{0,0,4}],{k,6}];
Graphics3D[{S1,S2,S3,S4,S5},Boxed->False,ViewPoint->{1.03,3.,0.73},ViewVertical->{-0.09,0.7,0.89}]

This was done while explaining things again later to somebody who could not make it to the workshop. It demonstrates how to use Specularity to make things more shiny and how to combine simple objects (hyperbolic paraboloids) which alone would never qualify as original to get something original.

S1=ParametricPlot3D[ {x,y,x y/2},{x,-2,2},{y,-2,2},PlotStyle->{Directive->{Specularity[10,White]},Yellow,Thickness[0.4]},Mesh->False,Boxed->False,Axes->False,PlotPoints->100];
S2=ParametricPlot3D[ {x,y,-x y/2},{x,-2,2},{y,-2,2},PlotStyle->{Directive->{Specularity[10,White]},RGBColor[1,1,0],Thickness[0.4]},Mesh->False,Boxed->False,Axes->False,PlotPoints->100];
Show[{S1,S2}]