exact formula is inside /lib/skybright.cal if this can help you to find the name.
{ RCSid: $Id$ } { Sky brightness function for sunny and cloudy skies.
Additional arguments required for calculation of skybright:
A1 - 1 for CIE clear, 2 for CIE overcast, 3 for uniform, 4 for CIE intermediate A2 - zenith brightness A3 - ground plane brightness A4 - normalization factor based on sun direction A5,A6,A7 - sun direction }
cosgamma = Dx*A5 + Dy*A6 + Dz*A7;
gamma = Acos(cosgamma); { angle from sun to this point in sky }
zt = Acos(A7); { angle from zenith to sun }
eta = Acos(Dz); { angle from zenith to this point in sky }
wmean(a, x, b, y) : (a*x + b*y) / (a + b);
skybr = wmean((Dz+1.01)^10, select(A1, sunnysky, cloudysky, unifsky, intersky), (Dz+1.01)^-10, A3);
sunnysky = A2 * (.91 + 10*exp(-3*gamma) + .45*cosgamma*cosgamma) * if( Dz - .01, 1.0 - exp(-.32/Dz), 1.0) / A4;
cloudysky = A2 * (1 + 2*Dz)/3;
unifsky = A2;
intersky = A2 * ( (1.35*sin(5.631-3.59*eta)+3.12)*sin(4.396-2.6*zt) + 6.37 - eta ) / 2.326 * exp(gamma*-.563*((2.629-eta)*(1.562-zt)+.812)) / A4;
…
f the mesh was self-intersecting everywhere. So instead I used Millipede (isosurface) to get the same undulations, but ignore the complex 'folds', you can see the difference in cross section thickness. I then tessellated it with the inverse pattern of the outer surface.
To make it a single 3d printable mesh, i just deleted a single face on inner and outer skin, then lofted the naked edges. (creating a tiny hole through the model). Therefore creating a single mesh that folds in on itself, not sure if there is a better way of defining the space between two meshes as the solid area...
Full GH (Kangaroo - Meshmachine - Weaverbird - Millipede)
Special thanks to Laurent Delrieu for his interesting offset mesh method that i based my approach on.
http://www.grasshopper3d.com/forum/topics/offset-mesh-problems-with-3d-mesh-with-weaverbird…
Added by Nick Tyrer at 5:25am on December 10, 2015
GH) > then define (still in GH) some instance definition (or many: case variants) > then place it according some "policy" (3d point grid and the likes). Note: Only doable with code, mind (C# in my case).
Obviously you can skip the creation part and instruct GH to deal with instance definitions already listed in the Block Manager (say: find the block named "cell666_B3" blah, blah) ... but that means that you can only use them (meaning a rather "limited" parametric approach) and not make them from scratch (meaning a true parametric approach).
But I guess that you've tried the block way in the Rhino environment already. That said I use rather solely this approach in GH and yields quite manageable object collections - I would say "real-time" response (up to 20K instances) but I use dedicated Xeon E5 1630 V3 workstations (with NVida Quadros K4200 and up for the graphic response part of the equation) so the "performance" is rather a subjective thing.
Modifications:
easily doable with GH (on instance definitions at placing time: since you need only to scale them and not vary their topology).
Anyway post a portion of the R file.…
FORE MeshMachine (rather better) or after
BTW: For a mesh with 7M points ... well... you'll need some proper CPU to deal in a reasonable amount of time (what about a Xeon E5 1630 V3?).
Alternatively find a friend who knows very well Modo ... and see first hand what the US Movie Industry is all about.…
for waves, that is done with a 'phase shift', add 2*pi/4 radians (for a 90 deg shift) to your sin curve, could also be done using cos instead of sin for an inherent 90 deg shift
Added by mark zirinsky at 7:37pm on November 9, 2016
Two things:
90 X 5 is wrong. There are 360 degrees in a circle so just use a constant (360), or 90 X 4.
Don't flatten the output of 'Flip' before 'IntCrv'.