RenderShopTest.cm
Last Edited by: Crow, September 7, 1989 9:46:33 pm PDT
&sgf[ThreeDDemoImpl]
ViewerLocksImpl.debugging ← TRUE     -- allows breakpoints in paint procs
Commands for changing Color Display mode
ColorDisplayManager.Start[$Dither8, left]  -- raw display startup
ColorDisplayManager.Start[$Gray8, left]
ColorDisplayManager.Start[$FullColor, left]
ThreeDViewer.SwitchDisplayTo[context3d, $FullColor]
ThreeDViewer.SwitchDisplayTo[context3d, $Gray8]
ThreeDViewer.SwitchDisplayTo[context3d, $Dither8]
Changing mode without viewers
G3dRender.LoadDisplayClass[context3d, $Gray]
G3dRender.LoadDisplayClass[context3d, $PseudoColor]
G3dRender.LoadDisplayClass[context3d, $FullColor]
G3dRender.LoadDisplayClass[context3d, $Bitmap]
Changing mode without display
G3dRender.LoadDisplayClass[context3d, $GrayInVM]
G3dRender.LoadDisplayClass[context3d, $PseudoColorInVM]
G3dRender.LoadDisplayClass[context3d, $FullColorInVM]
Terminal.GetColorFrameBufferA[context.terminal]!!!
Render Modes and Viewports
Reset[]
InitNoViewer[]
FacetedDemo[]
← ThreeDDemoImpl.cursorRange ← 64.0   -- default range of cursor-controlled viewpoint
← ThreeDDemoImpl.context3d.stopMe^ ← TRUE   -- interpret for panic stop (keep trying)
ViewerLocksImpl.debugging ← TRUE     -- allows breakpoints in paint procs
context3d.preferredRenderMode ← $Pixels
context3d.preferredRenderMode ← $Imager
G3dG3dRenderWithPixelsImpl.BufferRendering[context3d]
G3dG3dRenderWithPixelsImpl.BufferRendering[context3d, FALSE]
G3dRender.SetRenderStyle[G3dRender.FindShape[context3d, "TeaPot"], controlPoints]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"CheckerBoard"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"SoccerBall"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"Icosahedron"]]
G3dRender.SetHiddenLines[ context3d, "Icosahedron" ]
G3dRenderWithPixels.DepthBuffering[context3d]
G3dRenderWithPixels.DepthBuffering[context3d, FALSE]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dRenderWithPixels.AntiAliasing[context3d, FALSE]
G3dRender.StartLog[context3d]
G3dRender.SetViewPort[ context3d, [0.0, 0.0, 640.0, 453.0] ]      -- defaults
G3dRender.SetWindow[ context3d, [-1.0, -.7078125, 2.0, 1.415625] ]
G3dRender.SetViewPort[ context3d, [120.0, 90.0, 400.0, 300.0] ]  -- 400 x 300 for 640 x 480
G3dRender.SetViewPort[ context3d, [220.0, 165.0, 200.0, 150.0] ]  -- 200 x 150 for 640 x 480
G3dRender.SetViewPort[ context3d, [311.0, 228.0, 400.0, 300.0] ]  -- 400 x 300 for 1024 x 768
G3dRender.SetView[context3d, [2.0, -10.0, 3.0], [0.0, 0.0, 0.0] ]  -- default
G3dRender.SetView[context3d, [0.0, 0.2, 0.93], [0.0, 0.0, 0.0] ]  -- scene1 closeup
G3dRender.SetView[context3d, [4.733, -1.93, -0.6], [0.0, 0.5, 0.0] ] -- scene2 view closeup
G3dRender.SetView[context3d, [10.0, -2.0, 1.0], [0.0, 0.0, 0.0] ]  -- scene2, glass in front
context3d.class.loadBackground[context3d]     -- clear viewport to background
GetOffScreenCtx[context3d, 2000, 1500]   -- get large context to work in
GetOnScreenCtx[context3d, 200, 150]    -- get additional on-screen context to work in
MakeFrame[]
DistributedRender.MakeFrame[context3d]   -- build picture using multiple processors
ColorDisplayRender.MakeHiResFrame[context3d, 1024, 768, "HiResTest.ais" ]
RenderWithImager.MakeInterpressPage[context3d, "ThreeDTest.interpress"]
ShowShapes[]
Writing out Shapes
G3dRender.WriteShape[context: context3d, shapeName: "Icosahedron", fileName: G3dRender.PrependWorkingDirectory[context3d, "ShapeOut"], xyz: TRUE, normal: FALSE, color: FALSE, trans: FALSE, texture: FALSE, polyClr: FALSE]
Printing Images
ColorAISToInterpress AIStemp.ip ← [cyan]<AIS>Crow>Lamming7Scene
InterpressToPD AIStemp.ip Color400 ColorCorrection 1.25 scale
PeachPrint MtFuji AIStemp.pd
PrintColorAIS [cyan]<AIS>Crow>MultiTxtrdEgg2
PrintColorAIS WurlitzerEgg
PrintColorAIS [cyan]<AIS>Crow>TestScene2
ColorAISToInterpress ComparisonEggs.ip ← [cyan]<AIS>Crow>ComparisonEggs
InterpressToPD ComparisonEggs.ip Color400 ColorCorrection
PeachPrint MtFuji ComparisonEggs.pd
PrintColorAIS [cyan]<AIS>Crow>ZebraBurlTeaPot
ColorAISToInterpress ZebraBurlTeaPot.ip ← [cyan]<AIS>Crow>ZebraBurlTeaPot
InterpressToPD ZebraBurlTeaPot.ip Color400 ColorCorrection
PeachPrint MtFuji ZebraBurlTeaPot.pd
Scene Storage and Retrieval
G3dScene.WriteParameters[context3d, "Temp.scene"]
G3dScene.ReadParameters[context3d, "Temp.scene"]
G3dScene.MakeFrameFromFile[context3d, "Temp.scene"]
Lighting and Background
G3dRender.SetBackgroundColor[ context3d, [0.3, 0.3, 1.0] ]
G3dRender.NameBackgroundColor[ context3d, "Light Blue" ]
G3dRender.SetBackgroundImage[ context3d, "/Cyan/AIS/Crow/ZebraBurlTeaPot.ais" ]
context3d.props ← Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background
G3dRender.SetAmbientLight[ context3d, "Dark Grey" ]
G3dRender.AddLight[context3d, "Default", [500.0, -200.0, 10.0], [1.0, 1.0, 0.7] ]
G3dRender.AddLight[context: context3d, name: "Light2", position: [500.0, -200.0, 10.0], color: [1.0, 1.0, 0.7] ]
ColorMap Fiddling -- set color display to 8-bits
ImageTwiddle.Show8BitClrMap[context3d]
ImageTwiddle.Rotate8BitClrMap[Terminal.Current[], 0, 255, 10]
ColorDisplayRender.LoadStd8BitClrMap[Terminal.Current[]]
ColorDisplayRender.LoadColorRamp[Terminal.Current[], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0], [.43, .43, .43]]
ImageTwiddle.AdjustValueRamp[context3d, [.43, .43, .43]]  -- apply TRC
ImageTwiddle.LoadMultiRamps[Terminal.Current[], LIST[ [.0, .0, .0], [.1, .1, .8], [.8, .4, .2], [.9, .6, .6], [.8, .9, .9], [1.0, 1.0, 1.0] ] ]  -- blue, brown, red, blue-white
ImageTwiddle.LoadMultiRamps[Terminal.Current[], LIST[ [.0, .0, .0], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.4, .3, .3], [.4, .2, .1], [.6, .4, .2], [.7, .5, .4], [.8, .6, .5], [.5, .8, .6], [.5, .8, .6], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.4, .3, .3], [.4, .2, .1], [.8, .5, .3], [.0, .0, .0], [.4, .2, .1], [.0, .0, .0], [.1, .1, .8], [1.0, 1.0, 1.0], [.8, .5, .3], [.5, .8, .6], [.8, .9, .9], [.3, .1, .1], [.2, .1, .0], [1.0, 1.0, 1.0] ] ]
ImageTwiddle.LoadMultiRamps[Terminal.Current[], LIST[ [1.0, .0, .0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, .0, .0] ] ]  -- red, green, blue, red
ThreeDScenes.FillViewPort[context3d, [1.0,0.0,1.0] ]
G3dRender.StartLog[context3d]         -- write out colormap
ImageTwiddle.ShowMapOnLog[context3d, Terminal.Current[]]
Image Enhancement and Scaling
Miscellaneous
ImageTwiddle.AdjustValueRamp[context3d, [.7, .5, .7]] -- gamma curves for each separation
ImageTwiddle.AdjustSaturation[context3d, 0.5 ]    -- makes more saturated (0 -1)
G3dRender.SetViewPort[context3d, [0.0, 0.0, 640.0, 453.0] ]
GetOnScreenCtx[context3d, 228, 171]
SetViewPort[[100.0, 0.0, 400.0, 450.0] ]
G3dColorDisplaySupport.GetAIS[context3d, "///Users/Crow.pa/AIS/SphereWithIACRAdj.ais" ]
G3dColorDisplaySupport.GetAIS[onScreenCtx, "///Users/Crow.pa/AIS/SphereWithIACRAdj.ais" ]
ImageTwiddle.ScaleDownImage[onScreenCtx, context3d]
Liveboard experiments
GetOffScreenCtx[context3d, 2400, 2400]
G3dColorDisplaySupport.GetAIS[offScreenCtx, "[pixel]<Starkweather>images>orig>JT300STD.AIS"]
ImageTwiddle.ScaleDownImage[context3d, offScreenCtx]
Old-style calls for debugging edgblt
run EdgeBlt
SetViewPort[[0.0, 0.0, 640.0, 453.0] ]
GetOffScreenCtx[context3d, 640, 452]
ChangeRenderMode[$Grey]
SetViewPort[[300.0, 0.0, 350.0, 400.0] ]
ThreeDMisc.MakeFrame[offScreenCtx]
G3dColorDisplaySupport.GetAIS[offScreenCtx, "///Users/crow.pa/AIS/violin-grn.ais"]
EdgeBlt.ImageTransform[ [[context3d.display.pixels[0].subMap.sampleMap, [100, 50], [640, 452]], 1], [[offScreenCtx.display.pixels[0].subMap.sampleMap, [26, 65], [400, 510] ], 1], [0, 0], 10.0, .85]
G3dColorDisplaySupport.GetAIS[context3d, "ViolinEdgeBlt-grey.ais"]
ImageTwiddle.ScaleDownImage[context3d, offScreenCtx]
G3dColorDisplaySupport.PutAIS[context3d, "///Users/Crow.pa/AIS/ViolinScene.ais" ]
Lines and Text
context3d.class.draw2DLine[context: context3d, p1: [0.2, 0.2], p2: [0.7, 0.5], color: [255, 255, 0, 0, 0] ]
context3d.class.draw2DRope[context: context3d, rope: "Look at the pretty picture!!", position: [0.2, 0.7], color: [127, 127, 255, 0, 0], size: 50.0, font: "Xerox/Pressfonts/TimesRoman-MRR"]
TextAtCursor["Text Here", [1.0, 1.0, 1.0], 20.0, "Xerox/Pressfonts/TimesRoman-MRR"]
MoveToCursor[]
DrawToCursor[ [1.0,1.0,1.0] ]
G3dRender.AddShape[context3d, G3dRender.ShapeFromRope["sign", "Look at me!", "vivid yellow"] ]
G3dRender.PlaceShape[context3d, "sign", [-1.0, -1.0, 1.0] ]
AIS Files: Writing and Reading
G3dColorDisplaySupport.GetAIS[context: context3d, fileRoot: "Temp.ais", xOffset: 20, yOffset: 100, center: FALSE ]
G3dColorDisplaySupport.PutRGB[context3d, "Temp.rgb" ]
G3dColorDisplaySupport.GetRGB[context3d, "/kimball-nfs/usr/fs/crow/AbekasMovieSmooth24.rgb" ]
G3dColorDisplaySupport.GetRGB[context3d, "///users/crow.pa/3d/convertrasterobject/OxB18-4.rgb" ]
G3dColorDisplaySupport.GetRGB[context3d, "///users/crow.pa/AIS/Animation/AbekasMovie0.rgb" ]
G3dColorDisplaySupport.PutAIS[context3d, "Temp.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "Temp.ais" ]
Install SunNFSRemoteFile   -- to get access to NFS files
For Comparisons
G3dRender.SetViewPort[context3d, [0.0, 0.0, 320.0, 453.0] ]     -- for 640 x 480
G3dColorDisplaySupport.GetAIS[context3d, "ZebraBurlTeaPot.ais" ]
G3dRender.SetViewPort[context3d, [320.0, 0.0, 320.0, 453.0] ]
G3dColorDisplaySupport.GetAIS[context3d, "ZebraBurlTeaPotHiRes.ais" ]
G3dRender.SetViewPort[context3d, [0.0, 0.0, 640.0, 453.0] ]
Gallery - Interesting images 24-bit
G3dColorDisplaySupport.GetAIS[context3d, "/cyan/AIS/Crow/ComparisonEggs.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/cyan/AIS/Crow/Spoon.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/cyan/AIS/Crow/ZebraBurlTeaPot.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/cyan/AIS/Crow/TestScene2.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "[QueenFish]<Cedar>Users>Bier.pa>Ugray>Gears2.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/Pixel/Lamming/Mugs/crow1.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/Pixel/Lamming/Mugs/crow2.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/User/Crow/AIS/Poobs.ais" ]
Gallery - Interesting images 8-bit
G3dColorDisplaySupport.GetAIS[context3d, "/cyan/AIS/Crow/MarbleTeaPot.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/User/Crow/AIS/JaggyText.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/User/Crow/AIS/SmoothText.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/User/Crow/AIS/page-Red.ais" ]

ImageTwiddle.SetUpTerrainColors[Terminal.Current[]]
G3dColorDisplaySupport.GetAIS[context3d, "/Cyan/AIS/Crow/LakeScene-HiRes.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "/Pixel/Crow/LakeScene-BigRocks.ais" ]
G3dColorDisplaySupport.GetAIS[context3d, "Temp.ais" ]
Intersection tests
Eggs
Reset[]   -- for bump-map test
G3dRender.AddShapeFromFile[ context3d, "Egg", "UtahEgg.shape", [1.0, .0, .0] ]
G3dRender.AddShapeFromFile[ context3d, "Egg2", "UtahEgg.shape", [0.0, .0, .0] ]
Texture tests
Texture Squares with varying texture scales (using texture coordinates)
Reset[]
G3dRender.AddShapeFromFile[ context3d, "test", "TxtrSquares2.shape" ]
G3dRender.SetView[context3d, [0.0, -20.0, 0.0], [0.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "test"], [1.0, 1.0, 1.0] ]
G3dRender.SetRenderStyle[ G3dRender.FindShape[context3d, "test"], smooth]
G3dScanConvertImpl.useTextureCoords ← TRUE
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "test", $TestNoise ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "test", $TestOneOverFNoise ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "test", $ZebraBurl ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "test" ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "test", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Intensity] ]
G3dRender.AddShapeFromFile[ context3d, "test", "[Ivy]<Crow>Shape>TxtrSquares.shape" ]
G3dRender.AddShapeFromFile[ context3d, "test", "LongRectangle.shape" ]
G3dRender.SetView[context3d, [-4.0, -3.0, 1.0], [5.0, 0.0, 1.0] ]
Texture Squares of varying sizes and texture scales (using texture coordinates) abutted
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Square1", "Square1.shape", [-1.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "Square4", "Square4.shape", [ 0.0, -12.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "Square16", "Square16.shape", [ 0.0, -15.0, -.0625] ]
G3dRender.AddShapeFromFile[ context3d, "Square64", "Square64.shape", [ -0.015625, -15.75, -0.015625] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Square1"], [1.0, 1.0, 1.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Square4"], [1.0, 1.0, 1.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Square16"], [1.0, 1.0, 1.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Square64"], [1.0, 1.0, 1.0] ]
G3dRender.SetRenderStyle[ G3dRender.FindShape[context3d, "Square1"], smooth]
G3dRender.SetRenderStyle[ G3dRender.FindShape[context3d, "Square4"], smooth]
G3dRender.SetRenderStyle[ G3dRender.FindShape[context3d, "Square16"], smooth]
G3dRender.SetRenderStyle[ G3dRender.FindShape[context3d, "Square64"], smooth]
G3dRender.SetView[context3d, [0.0, -16.0, 0.0], [0.0, 0.0, 0.0], 20.0 ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square1", $TestNoise ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square4", $TestNoise ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square16", $TestNoise ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square64", $TestNoise ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Square1" ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Square4" ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Square16" ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Square64" ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square1", $ZebraBurl ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square4", $ZebraBurl ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square16", $ZebraBurl ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Square64", $ZebraBurl ]
ShowShapes[]
ShadingProcs.noiseType ← $Limited   -- $Plain, $Simple, $Limited, $DblOctave
Striped Egg
Reset[]   -- for bump-map test
G3dRender.AddShapeFromFile[ context3d, "Egg", "UtahEgg.shape", [.0, .0, .0] ]
G3dRender.RotateShape[context3d, "Egg", [0.0, 0.0, -1.0], [0.0, -1.0, -1.0], 45]
G3dRender.SetView[context3d, [-5.0, -1.0, 1.0], [-1.0, 0.0, 0.0] ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg", [0.0, 0.0], [0.0, 2.0], [2.0, 2.0], [2.0, 0.0] ]
Stripes mapped to teapot patches
Reset[]   -- for bump-map test
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotWithBot.shape", position: [0.0, 0.0, -1.25]]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "TeaPot", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.SetPatchTextureCoords[ context3d, "TeaPot" ]
Rolling Egg Animations
Reset[]   -- for bump-map test
G3dRender.AddShapeFromFile[ context3d, "Egg", "UtahEgg.shape", [.0, .0, .0] ]
G3dRender.RotateShape[context3d, "Egg", [0.0, 0.0, -1.0], [0.0, -1.0, -1.0], 45]
G3dRender.SetLines[ context3d, "Egg" ]
G3dRender.SetView[context3d, [-2.0, -5.0, 1.0], [-1.0, 0.0, 0.0] ]
G3dRender.AddLight[context3d, "Default", [-100.0, -200.0, 300.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Egg"], [1.0, .8, .5] ]
G3dRender.SetRenderStyle[ context3d, "Egg" ]
G3dRender.SetShininess[ context3d, "Egg", 60.0 ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Egg"]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Bump, 15.0] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg", [0.0, 0.0], [0.0, 0.5], [0.5, 0.5], [0.5, 0.0] ]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "Egg" ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/reprisal/cedar/users/glassner.pa/pix/blurfractures.ais", $Bump, 14.0] ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/Cyan/AIS/Baboon-green.ais", $Intensity] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg", [0.5, 1.0], [0.5, 0.5], [1.0, 0.5], [1.0, 1.0] ]
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Egg", "UtahEgg.shape", [.0, .0, .0] ]
G3dRender.AddShapeFromFile[context3d, "EggShadow", "EggShadow.shape", [0.0, 0.1, -1.1]]
G3dRender.RotateShape[context3d, "Egg", [0.0, 0.0, -1.0], [0.0, -1.0, -1.0], 0] -- clear rotations
G3dRender.PlaceShape[ context3d, "Egg", [.0, .0, .0] ]
G3dRender.SetPosition[ G3dRender.FindShape[context3d, "Egg"] ]
G3dRender.SetLines[ context3d, "Egg" ]
G3dRender.SetLines[ context3d, "EggShadow" ]
G3dRender.SetView[context3d, [-2.0, -5.0, 1.0], [-1.0, 0.0, 0.0] ]
Animation3D.SetShapeManipulation[context3d, "Egg", $RollShape, LIST[NEW[REAL ← -60.0], NEW[REAL ← 0.05], NEW[REAL ← 3.0] ], AnimationProcs.RollShape]
G3dAnimationSupport.MakeFramesFromTo[ context: context3d, lookingFrom: [-1.0, -5.0, 1.0], lookingAt: [-1.0, 0.0, 0.0], toLookingFrom: [-1.0, -5.0, 1.0], toLookingAt: [-1.0, 0.0, 0.0], framesOnLine: 60, startAt: 0, endAt: 59, filename: NIL ];
G3dRender.SetViewPort[ context3d, [220.0, 165.0, 200.0, 150.0] ]
G3dAnimationSupport.MakeFramesFromTo[ context: context3d, lookingFrom: [-2.0, -5.0, 1.0], lookingAt: [-1.0, 0.0, 0.0], toLookingFrom: [-2.0, -5.0, 1.0], toLookingAt: [-1.0, 0.0, 0.0], framesOnLine: 60, startAt: 0, endAt: 59, filename: "EggRoll.ais"];
G3dRender.StartLog[context3d]
G3dRender.AddLight[context3d, "Default", [-100.0, -200.0, 300.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Egg"], [1.0, .8, .5] ]
G3dRender.SetRenderStyle[ context3d, "Egg" ]
G3dRender.SetShininess[ context3d, "Egg", 60.0 ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Egg"]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Egg", $ZebraBurlAMoving ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Egg"]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Egg", $ZebraBurl ]
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "Egg"]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Bump] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg", [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg", [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
G3dShade.LoadShadingClass[ G3dRender.FindShape[context3d, "EggShadow"], $NoShading ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "EggShadow"], [0.0, 0.0, 0.0] ]
G3dRender.SetTransmittance[context3d, "EggShadow", 1.0 ]
G3dRender.SetRenderStyle[ context3d, "EggShadow" ]
G3dRender.AddShapeFromFile[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -0.0, -3.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CheckerBoard"], [.8, .4, .2] ]
G3dRender.SetFaceted[ context3d, "CheckerBoard" ]
G3dRender.FindShape[ context3d, "CheckerBoard" ].centroid.z ← -5.0
G3dRender.AddShapeFromFile[ context3d, "CheckerBoard2", "CheckerBoard.shape", [-8.0, -0.0, -3.0] ]
G3dRender.RotateShape[context3d, "CheckerBoard2", [8.0, 8.0, 0.0], [8.0, 8.0, 1.0], 90]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CheckerBoard2"], [.2, .2, .2] ]
G3dRender.SetFaceted[ context3d, "CheckerBoard2" ]
G3dRender.FindShape[ context3d, "CheckerBoard2" ].centroid.z ← -5.0
G3dRender.RotateShape[context3d, "Egg", [0.0, 0.0, -1.0], [0.0, -1.0, -1.0], 0]
G3dRender.PlaceShape[ context3d, "Egg", [.0, .0, .0] ]
G3dRender.SetPosition[ G3dRender.FindShape[context3d, "Egg"] ]
G3dRender.PlaceShape[ context3d, "EggShadow", [.0, .1, -1.1] ]
Animation3D.SetShapeManipulation[context3d, "Egg", $RollShape, LIST[NEW[REAL ← -60.0], NEW[REAL ← 0.05], NEW[REAL ← 3.0] ], AnimationProcs.RollShape]
G3dRenderWithPixels.AntiAliasing[context3d]
GetOffScreenCtx[context3d, 720, 486];
G3dAnimationSupport.MakeFramesFromTo[ context: offScreenCtx, lookingFrom: [-2.0, -5.0, 1.0], lookingAt: [-1.0, 0.0, 0.0], toLookingFrom: [-2.0, -5.0, 1.0], toLookingAt: [-1.0, 0.0, 0.0], framesOnLine: 60, startAt: 0, endAt: 59, filename: "///Users/Crow.pa/AIS/Animation/RollEggJagStripes.rgb"]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "Egg" ]
G3dAnimationSupport.MakeFramesFromTo[ context: offScreenCtx, lookingFrom: [-2.0, -5.0, 1.0], lookingAt: [-1.0, 0.0, 0.0], toLookingFrom: [-2.0, -5.0, 1.0], toLookingAt: [-1.0, 0.0, 0.0], framesOnLine: 60, startAt: 0, endAt: 59, filename: "///Users/Crow.pa/AIS/Animation/RollEggBump.rgb" ]
Reset[]
G3dRender.AddShape[ context3d, G3dRender.ShapeFromRope["Label", "Bump Mapping" , "Vivid Yellow" ] ]
G3dRender.SetView[context3d, [1.6, -7.0, 0.0], [1.6, 0.0, 0.0] ]
G3dRenderWithPixels.AntiAliasing[context3d]
GetOffScreenCtx[context3d, 720, 486]
G3dColorDisplaySupport.GetRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggBump000.rgb" ]
SurfaceRender.ShowShapes[offScreenCtx]
G3dColorDisplaySupport.PutRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggBumpLabel.rgb" ]
G3dRender.ChangeRopeMessage[offScreenCtx, "Label", "Static Solid Texture" ]
G3dRender.SetView[offScreenCtx, [1.9, -7.0, 0.0], [1.9, 0.0, 0.0] ]
G3dColorDisplaySupport.GetRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggZebra000.rgb" ]
SurfaceRender.ShowShapes[offScreenCtx]
G3dColorDisplaySupport.PutRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggZebraLabel.rgb" ]
G3dRender.ChangeRopeMessage[offScreenCtx, "Label", "Intensity Mapping" ]
G3dRender.SetView[offScreenCtx, [1.9, -7.0, 0.0], [1.9, 0.0, 0.0] ]
G3dColorDisplaySupport.GetRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggStripes000.rgb" ]
SurfaceRender.ShowShapes[offScreenCtx]
G3dColorDisplaySupport.PutRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggStripesLabel.rgb" ]
G3dRender.ChangeRopeMessage[offScreenCtx, "Label", "Moving Solid Texture" ]
G3dRender.SetView[offScreenCtx, [2.2, -7.5, 0.0], [2.2, 0.0, 0.0] ]
G3dColorDisplaySupport.GetRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggZebra000.rgb" ]
SurfaceRender.ShowShapes[offScreenCtx]
G3dColorDisplaySupport.PutRGB[offScreenCtx, "///Users/Crow.pa/AIS/Animation/RollEggThruZebraLabel.rgb" ]
Abekas animations
GetOffScreenCtx[context3d, 720, 486];
G3dRender.SetWindow[offScreenCtx, [x: -1.0, y: -0.75, w: 2.0, h: 1.5] ]
G3dAnimationSupport.Orbit[ context: offScreenCtx, lookingFrom: [2.0, -10.0, 3.0], lookingAt: [0.0, 0.0, 0.0], axis: [0.3, 0.0, 1.0], base: [0.0, 0.0, 0.0], moveEPNotCI: TRUE, framesPerRev: 40, startAt: 0, endAt: 39, filename: "///Users/Crow.pa/AIS/Animation/AbekasMovie.rgb" ]
G3dAnimationSupport.Orbit[ context: context3d, lookingFrom: [x: -21.64353, y: -7.581413, z: 8.345146], lookingAt: [0.0, 0.0, 0.0], axis: [0.3, 0.0, 1.0], base: [0.0, 0.0, 0.0], moveEPNotCI: TRUE, framesPerRev: 20, startAt: 0, endAt: 19, filename: "///Users/Crow.pa/AIS/Animation/AbekasMovie.rgb" ]
Animations
G3dAnimationSupport.Orbit[ context: context3d, lookingFrom: [0.0, -5.0, 0.0], lookingAt: [0.0, 0.0, 0.0], axis: [0.0, 0.0, 1.0], base: [0.0, 0.0, 0.0], moveEPNotCI: TRUE, framesPerRev: 40, startAt: 0, endAt: 39, filename: "///Users/User.pa/3d/Movie" ];
G3dRender.SetViewPort[ context3d, [120.0, 90.0, 400.0, 300.0] ]  -- 400 x 300 for 640 x 480
G3dAnimationSupport.MakeFramesOnPath[context: context3d, lookingFrom: LIST[ [10.0, 0.0, 3.0], [2.0, 2.5, 1.0], [0.5, 1.0, 0.3], [-2.0, 4.0, 1.0], [-10.0, 0.0, 3.0], [0.0, -10.0, 1.0] ], lookingAt: LIST[ [-2.5, 0.0, 0.0] ], framesOnPath: 40, startAt: 0, endAt: 39, filename: "///Users/Crow.pa/3d/PathMovie", closed: TRUE]
G3dAnimationSupport.MakeFramesFromTo[ context: context3d, lookingFrom: [-2.0, -5.0, 1.0], lookingAt: [-2.0, 0.0, 0.0], toLookingFrom: [2.0, -5.0, 1.0], toLookingAt: [2.0, 0.0, 0.0], framesOnLine: 40, startAt: 0, endAt: 39, filename: NIL ]; -- too boring to store as files
Reset[]
SetUpMovie[ fileRoot: "/Cyan/AIS/Animation/LakeSceneTest.ais", numFiles: 64, start: 0, labels: TRUE];
ImageTwiddle.SetUpTerrainColors[Terminal.Current[]]
Reset[]
SetUpMovie[ fileRoot: "/Pixel/Crow/Animation/StillCloser.ais", numFiles: 40, start: 1]
G3dRender.LoadDisplayType[context3d, $PseudoColor]
Reset[]
SetUpMovie[ fileRoot: "///Users/Crow.pa/AIS/Animation/Paper3Web.ais", numFiles: 40, start: 0]
G3dRender.LoadDisplayType[context3d, $Grey]
G3dRender.SetViewPort[ context3d, [311.0, 228.0, 400.0, 300.0] ]    -- for 1024 x 768
Use Your Own Objects
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "YourShape", fileName: "/User/You/Shapes/YourShape.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.SetColor[G3dRender.FindShape[context3d, "YourShape"], [.4, .8, .4] ] -- pea green
MakeFrame[]         -- implemented in ThreedDemoImpl
context3d.class.render[context3d]    -- alternative for producing frame
Intersecting Boxes
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "Tetrahedron.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box2", fileName: "Tetrahedron.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Box2"], [0.1, 1.0, 0.1] ]
G3dRender.RotateShape[ context3d, "Box2", [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], 180.0 ]
G3dRender.PlaceShape[ context3d, "Box2", [2.1, 0.5, 0.5] ]
G3dRender.SetView[ context3d, [x: 11.63259, y: -11.29297, z: 3.0], [0.0, 0.0, 0.0] ]
G3dRender.ForcePrioritySort[ context3d ]
G3dRender.SetView[ context3d, [x: 0.0, y: -4.5, z: 3.0], [0.0, 0.0, 0.0] ]
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "[pixel]<Lamming>GamutDemo>IdealLAB.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.SetTransmittance[context3d, "Box", 0.6]   -- keeps backfaces
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box2", fileName: "[pixel]<Lamming>GamutDemo>NewTTLab.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.SetTransmittance[context3d, "Box2", 0.6]   -- keeps backfaces
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "redAxis", fileName: "[pixel]<Lamming>GamutDemo>redAxis.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "blueAxis", fileName: "[pixel]<Lamming>GamutDemo>blueAxis.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "grnAxis", fileName: "[pixel]<Lamming>GamutDemo>grnAxis.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "yellowAxis", fileName: "[pixel]<Lamming>GamutDemo>yellowAxis.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "zAxis", fileName: "[pixel]<Lamming>GamutDemo>zAxis.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.SetView[ context3d, [x: 2.0, y: -2.0, z: 1.0], [0.0, 0.0, 0.5] ]
G3dRender.ForcePrioritySort[ context3d ]
G3dRender.SetView[ context3d, [x: 11.63259, y: -11.29297, z: 3.0], [0.0, 0.0, 0.0] ]
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "UtahEgg.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box2", fileName: "UtahEgg.shape", position: [0.51, 0.0, 0.01] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Box2"], [0.1, 1.0, 0.1] ]
G3dRender.RotateShape[ context3d, "Box2", [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], 60.0 ]
G3dRender.SetView[ context3d, [x: -0.458486, y: -4.22889, z: 3.0], [0.0, 0.0, 0.0] ]
G3dRender.ForcePrioritySort[ context3d ]
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Egg", fileName: "UtahEgg.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Cube", fileName: "ClosedBox.shape", position: [0.0, 0.5, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Cube"], [0.1, 1.0, 0.1] ]
G3dRender.ForcePrioritySort[ context3d ]
context.class.loadBackground[context]
ShowOnePatch[context, active[j].shape, active[j].patch]
ShowOnePatch[context, newPatch.shape, newPatch.patch]
ShowPrioritySeq[context, sorted]
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "BrownBox", fileName: "ClosedBox.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "GreenBox", fileName: "ClosedBox.shape", position: [0.5, 0.5, 0.5] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "GreenBox"], [0.1, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "BrownBox", 30.0 ]
G3dRender.RotateShape[ context3d, "GreenBox", [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], 10.0 ]
G3dRender.ForcePrioritySort[ context3d ]
G3dRender.SetView[ context3d, [x: 0.3, y: -7.472254, z: 3.0], [0.0, 0.0, 0.0] ]
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Square", fileName: "Square.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Square2", fileName: "Square.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.RotateShape[ context3d, "Square2", [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], 10.0 ]
G3dRender.RotateShapeLocal[ context3d, "Square", 30.0 ]
G3dRender.ForcePrioritySort[ context3d ]
G3dRender.SetView[ context3d, [x: -9.056515, y: 4.870392, z: 3.0], [2.0, 0.0, 0.0] ]
NonPlanarPolygons
Paper Illustrations
-- bezier nebbish
Reset[] 
G3dRender.AddShapeFromFile[ context3d, "Nebbish", "NebbishB.shape", [0.0, 0.0, 0.0]]
G3dRender.SetRenderStyle[ context3d, "Nebbish" ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Nebbish"], $PolygonToBezier ]
G3dRender.SetView[ context3d, [x: -6.2, y: -12.4, z: 2.666667], [0.0, 0.0, 3.25] ]
-- triangular patch nebbish
Reset[] 
G3dRender.AddShapeFromFile[ context3d, "Nebbish", "Nebbish.shape", [0.0, 0.0, 0.0]]
G3dRender.SetRenderStyle[ context3d, "Nebbish" ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Nebbish"], $PolygonToTnsrPatch ]
PatchFromPolyProcs.unitizeNormals ← TRUE
G3dRender.SetView[ context3d, [x: -6.2, y: -12.4, z: 2.666667], [0.0, 0.0, 3.25] ]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dRenderWithPixels.DepthBuffering[context3d]
G3dRender.SetViewPort[ context3d, [170.0, 40.0, 300.0, 400.0] ]
G3dAnimationSupport.Orbit[context: context3d, lookingFrom: [x: 4.0, y: -9.0, z: 2.666667], lookingAt: [0.0, 0.0, 3.25], axis: [-0.1, 0.0, 1.0], base: [0.0, 0.0, 0.0], moveEPNotCI: TRUE, framesPerRev: 40, startAt: 0, endAt: 39, filename: "///Users/Crow.pa/AIS/SmoothTnsNebbish.ais"]
movieViewPort ← [170.0, 40.0, 300.0, 400.0]
-- Volkswagen
Reset[] 
G3dRender.AddShapeFromFile[ context3d, "VW", "VW.shape", [0.0, 0.0, 0.0]]
G3dRender.OrientShape[ context3d, "VW", [0.0, -1.0, 0.0]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "VW"], $PolygonWithTangents ]
G3dRender.SetView[ context: context3d, eyePoint: [x: -10.0, y: 180.0, z: 80.0], ptOfInterest: [0.0, 30.0, 25.0], yonLimit: 200.0 ]
Reset[] -- Goblet
G3dRender.AddShapeFromFile[ context3d, "Goblet", "Goblet.shape", [0.0, 0.0, 0.0]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Goblet"], $PolygonWithNormals ]
G3dRender.SetView[ context: context3d, eyePoint: [x: -0.004, y: -2.679688, z: 2.246063] ]
-- figure 1 smooth-shaded icosahedron
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Icosahedron", "Icosahedron.shape", [0.0, 0.0, 0.0]]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure1.ais" ]
-- figure 5 SoccerBall, Banana, Striped Egg comparison
Reset[]
G3dRender.AddShapeFromFile[ context3d, "SoccerBall", "SoccerBall.shape", [0.0, 0.0, -1.0]]
G3dRender.AddShapeFromFile[ context3d, "SoccerBall2", "SoccerBall.shape", [0.0, 0.0, 1.0]]
ShapeTwiddle.ScaleShape[ context3d, "SoccerBall", 0.75]
ShapeTwiddle.ScaleShape[ context3d, "SoccerBall2", 0.75]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "SoccerBall"], $PolygonWithNormals ]
G3dRender.AddShapeFromFile[ context3d, "Banana", "Banana.shape", [-2.0, 0.0, -1.0]]
G3dRender.AddShapeFromFile[ context3d, "Banana2", "Banana.shape", [-2.0, 0.0, 1.0]]
ShapeTwiddle.ScaleShape[ context3d, "Banana", 2.0]
ShapeTwiddle.ScaleShape[ context3d, "Banana2", 2.0]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Banana"], $PolygonWithNormals ]
G3dRender.AddShapeFromFile[ context3d, "Egg", "UtahEgg.shape", [2.0, 0.0, -1.0]]
G3dRender.OrientShape[ context3d, "Egg", [1.0, 1.0, 0.0]]
G3dRender.RotateShapeLocal[ context3d, "Egg", 90.0 ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "Egg" ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg", [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "Egg2", "UtahEgg.shape", [2.0, 0.0, 1.0]]
G3dRender.OrientShape[ context3d, "Egg2", [1.0, 1.0, 0.0]]
G3dRender.RotateShapeLocal[ context3d, "Egg2", 90.0 ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg2", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "Egg2" ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Egg2", [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Egg"], $PolygonWithNormals ]
G3dRender.SetView[ context3d, [x: 2.0, y: -8.0, z: 3.0], [0.0, 0.0, 0.0] ]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure5.ais" ]
-- figure 6 tetrahedron, truncated octohedron, and simple goblet
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Tetrahedron", "Tetrahedron.shape", [-2.5, 0.0, -1.1]]
G3dRender.AddShapeFromFile[ context3d, "Tetrahedron2", "Tetrahedron.shape", [-2.5, 0.0, 1.1]]
ShapeTwiddle.ScaleShape[ context3d, "Tetrahedron", 0.6]
ShapeTwiddle.ScaleShape[ context3d, "Tetrahedron2", 0.6]
G3dRender.RotateShapeLocal[ context3d, "Tetrahedron", 30.0 ]
G3dRender.RotateShapeLocal[ context3d, "Tetrahedron2", 30.0 ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Tetrahedron"], $PolygonWithNormals ]
G3dRender.AddShapeFromFile[ context3d, "Octohedron", "OpenOctohedron.shape", [0.25, 0.0, -1.2]]
G3dRender.AddShapeFromFile[ context3d, "Octohedron2", "OpenOctohedron.shape", [0.25, 0.0, 1.2]]
ShapeTwiddle.ScaleShape[ context3d, "Octohedron", 1.0, 0.5, 0.5, 0.8]
ShapeTwiddle.ScaleShape[ context3d, "Octohedron2", 1.0, 0.5, 0.5, 0.8]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Octohedron"], $PolygonWithNormals ]
G3dRender.AddShapeFromFile[ context3d, "SimpleGoblet", "SimpleGoblet.shape", [2.5, 0.0, -1.25]]
G3dRender.AddShapeFromFile[ context3d, "SimpleGoblet2", "SimpleGoblet.shape", [2.5, 0.0, 1.25]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "SimpleGoblet"], $PolygonWithNormals ]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure6.ais" ]
-- figure 8 plump tetrahedron
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Tetrahedron", "Tetrahedron.shape", [0.0, 0.0, 0.0]]
G3dRender.RotateShapeLocal[ context3d, "Tetrahedron", 30.0 ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Tetrahedron"], $PolygonWithTangents ]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure8.ais" ]
-- figure 9 better goblet and octohedron
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Octohedron", "OpenOctohedron.shape", [-1.0, 0.0, 0.0]]
ShapeTwiddle.ScaleShape[ context3d, "Octohedron", 1.0, 0.5, 0.5, 0.8]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Octohedron"], $PolygonWithTangents ]
G3dRender.AddShapeFromFile[ context3d, "SimpleGoblet", "SimpleGoblet.shape", [1.5, 0.0, 0.0]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "SimpleGoblet"], $PolygonWithTangents ]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure9.ais" ]
G3dColorDisplaySupport.PutAIS[ context3d, "Torus.ais" ]
-- figure 12 Bezier goblet and octohedron
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Octohedron", "OpenOctohedron.shape", [-1.0, 0.0, 0.0]]
ShapeTwiddle.ScaleShape[ context3d, "Octohedron", 1.0, 0.5, 0.5, 0.8]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Octohedron"], $PolygonToBezier ]
G3dRender.AddShapeFromFile[ context3d, "SimpleGoblet", "SimpleGoblet.shape", [1.5, 0.0, 0.0]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "SimpleGoblet"], $PolygonToBezier ]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure12.ais" ]
-- figure 13 Nebbish comparison
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Nebbish0", "Nebbish.shape", [-2.0, 0.0, 0.0]]
ShapeTwiddle.ScaleShape[ context3d, "Nebbish0", 0.5]
G3dRender.SetLines[ context3d, "Nebbish0"]
G3dRender.AddShapeFromFile[ context3d, "Nebbish1", "Nebbish.shape", [0.0, 0.0, 0.0]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Nebbish1"], $PolygonWithTangents ]
G3dRender.SetLines[ context3d, "Nebbish1"]
G3dRender.AddShapeFromFile[ context3d, "Nebbish2", "Nebbish.shape", [2.0, 0.0, 0.0]]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Nebbish2"], $PolygonWithTangents ]
G3dRender.SetRenderStyle[ context3d, "Nebbish2"]
PatchFromPolyProcs.unitizeNormals ← TRUE
G3dRender.SetView[ context3d, [x: -1.1, y: -9.4, z: 2.666667], [0.0, 0.0, 1.625] ]
G3dRenderWithPixels.AntiAliasing[context3d, TRUE];
MakeFrame[]
G3dColorDisplaySupport.PutAIS[ context3d, "figure13.ais" ]
To get polygon count
ScanConvertImpl.statistics ← TRUE
ScanConvertImpl.InitHistograms[100,100]
ScanConvertImpl.polyCount ← 0
G3dG3dRenderWithPixelsImpl.statistics ← TRUE
G3dG3dRenderWithPixelsImpl.polyCount ← 0
Other Stuff
Reset[]
G3dRender.AddShapeFromFile[ context3d, "KleinBottle", "/User/Crow/Shapes/KleinBottle.shape", [0.0, 0.0, 0.0]]
G3dRender.SetRenderStyle[ context3d, "KleinBottle" ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "KleinBottle"], $PolygonWithNormals ]
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "WavyTriangle.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box"], $PolygonWithTangents ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Plane", fileName: "TwoSidedBox.shape", position: [0.0, 0.0, 0.0] ]
ShapeTwiddle.ScaleShape[ context3d, "Plane", 0.5, 0.5, 0.5]
G3dRender.OrientShape[ context3d, "Plane", [1.0, 0.0, 0.0]]
G3dRender.PlaceShape[ context3d, "Plane", [-0.4, 0.0, 0.0]]
G3dRender.SetView[ context3d, [x: -1.6875, y: -0.0135, z: 0.5788125], [0.0, 0.0, 0.0] ]

Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "SphericalTriangle.shape", position: [0.0, 0.0, 0.0] ]
PatchFromPolyProcs.minCosToAlignOpen ← -1.0   -- keep corners square
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box"], $PolygonToTnsrPatch ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box2", fileName: "WavyBezierTriangle.shape", position: [-0.5, 0.0, 0.0] ]
PatchFromPolyProcs.recurseLimit ← 2
PatchFromPolyProcs.minCosToAlignOpen ← -1.0   -- keep corners square
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box"], $PolygonWithTangents ]
BezierFromPolyProcs.minCosToAlignOpen ← -1.0   -- keep corners square
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box"], $PolygonToBezier ]
G3dRender.FindShape[context3d, "Box"].shadingClass.shadingType ← $CtlPts
TwoSidedBox.shape
OpenOctohedron.shape
OpenHexiDecahedron.shape
TriTube.shape
ClosedBox.shape
OpenBox.shape
CurvedEdge.shape
CrookedTriangle.shape
WavyTriangle.shape
SphericalTriangle.shape
WavySquare.shape
Hexagon.shape
Tetrahedron.shape
Octohedron.shape
Torus.shape
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "WavyTriangle.shape", position: [0.0, 0.0, 0.0] ]
ScanConvertImpl.ShowCoords[p]
ShowCorner[ corners[0], LIST["inVtx", "outVtx", "ptr", "inDir", "outDir"] ]!!
context.class.loadBackground[context]
context3d.shapes[1].shadingProps ← NIL    -- to kill $PatchCorners list, etc.
BezierDisplayCtrlPts[context, p, $DontRelease]  -- for display at breakpoint inside proc.
StandardPatchProcs.maxJaggyDeviation ← 1.0
StandardPatchProcs.maxJaggyInteriorDev ← 4.0
StandardPatchProcs.maxDeviation ← 0.25
StandardPatchProcs.maxInteriorDev ← 1.0
StandardPatchProcs.stopIfStraight ← FALSE
StandardPatchProcs.showCtlPts ← FALSE
StandardPatchProcs.recurseLimit ← 3
StandardPatchProcs.showLines ← TRUE
StandardPatchProcs.recurseLimit ← 0
StandardPatchProcs.showCtlPts ← TRUE
ShowSinglePatch[0, 1]
ShowSinglePatch[0, 27, TRUE]   -- sticky, subsequent mouse clicks show this patch
ShowPatchesOnVtx[0, 26]
context3d.class.loadBackground[context3d]     -- clear viewport to background
SurfaceRenderImpl.ShowOnePatch[context3d, context3d.shapes[1], 43]
G3dRender.FindShape[context3d, "Icosahedron"].shadingClass.shadingType ← $Smooth
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box", fileName: "TwoBadSquares.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box"], $PolygonWithTangents ]
G3dRender.SetView[ context3d, [x: 0.6, y: -8.866667, z: 10.8], [0.0, 0.0, 0.0] ]
PatchFromPolyProcs.showLines ← TRUE
PatchFromPolyProcs.recurseLimit ← 3
PatchFromPolyProcs.unitizeNormals ← TRUE
PatchFromPolyProcs.stopIfStraight ← FALSE
PatchFromPolyProcs.minCosToAlignOpen ← -1.0   -- keep corners square
Timing tests
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Banana"], $PolygonNoImage ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "ChampagneGlass"], $PolygonNoImage ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "UtahEgg"], $PolygonNoImage ]
Bezier continuity tests
Reset[]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box0", fileName: "TwoIsoTraps.shape", position: [3.0, 0.0, 0.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box0"], $PolygonToBezier ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box1", fileName: "TwoBadTraps.shape", position: [0.0, 0.0, 0.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box1"], $PolygonToBezier ]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Box2", fileName: "TwoBadSquares.shape", position: [-3.0, 0.0, 0.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Box2"], $PolygonToBezier ]
G3dRender.SetView[ context3d, [x: 0.6, y: -8.866667, z: 10.8], [0.0, 0.0, 0.0] ]
StandardPatchProcs.stopIfStraight ← FALSE
StandardPatchProcs.recurseLimit ← 4
PARC semiannual report cover
Reset[]
G3dRender.AddLight[context: context3d, name: "Default", position: [150.0, -200.0, 150.0], color: [1.0, 0.5, 0.5] ]
G3dRender.AddLight[context: context3d, name: "Second", position: [-250.0, -200.0, -50.0], color: [1.0, 1.0, 0.3] ]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dRender.AddShapeFromFile[ context3d, "Egg", "UtahEgg.shape", [0.0, 0.0, 0.0]]
G3dRender.RotateShapeLocal[ context3d, "Egg", -50.0 ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Egg"], [0.8, 0.8, 0.8] ]
G3dRender.SetRenderStyle[ context3d, "Egg" ]
G3dRender.SetView[context3d, [0.0, -3.5, 0.0], [0.0, 0.0, 0.0] ]
G3dRender.SetAmbientLight[context3d, "weakish darkish blue"]
G3dMappedAndSolidTexture.RemoveAllTexture[ context3d, "Egg" ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Egg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "ReportCoverWithText.ais", $Intensity] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context: context3d, shapeName: "Egg", botLeft: [0.0, 1.0], topLeft: [0.0, 0.0], topRight: [1.0, 0.0], botRight: [1.0, 1.0], sw: [-210.0, -40.0], nw: [-210.0, 40.0], ne: [-75.0, 40.0], se: [-75.0, -40.0] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "Egg" ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Egg", $PartialBurl ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Egg"], $PolygonToBezier ]
G3dRender.SetView[context3d, [0.0, -3.5, 0.0], [0.0, 0.0, 0.0] ]
G3dRender.SetViewPort[ context3d, [220.0, 15.0, 100.0, 125.0] ]
ColorDisplayRenderImpl.timeResolution ← 10
MakeFrame[]
G3dRender.SetView[context3d, [0.0, -1.5, 2.0], [0.0, 0.0, 0.0] ]
G3dRender.SetViewPort[ context3d, [320.0, 15.0, 100.0, 125.0] ]
MakeFrame[]
G3dColorDisplaySupport.PutAIS[context3d, "EggWithCover.ais" ]
ColorDisplayRender.MakeHiResFrame[ context3d, 1000, 1250, "EggWithCover1000x1250.ais" ]
G3dRender.SetViewPort[ context3d, [0.0, 0.0, 640.0, 480.0] ]
G3dColorDisplaySupport.GetAIS[context3d, "EggWithCover1000x1250.ais", 0, 300 ]
InterpressToAIS ReportCoverWithText.IP gray size: 8.75 11.5
ColorAisToInterpress EggWithCover1000x1250
InterPressToPD EggWithCoverRot.IP Color400 ColorCorrection 1.58 scale
PeachPrint MtFuji EggWithCover1000x1250.PD
Sphere
InterpressToAIS ReportCoverWithText.IP gray size: 13.9 14.0
G3dRender.AddShapeFromFile[ context3d, "Egg", "PolySphere.shape", [0.0, 0.0, 0.0]]
G3dRender.RotateShapeLocal[ context3d, "Egg", -45.0 ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context: context3d, shapeName: "Egg", botLeft: [1.0, 1.0], topLeft: [1.0, 0.0], topRight: [0.0, 0.0], botRight: [0.0, 1.0], sw: [-100.0, -50.0], nw: [-100, 40.0], ne: [-165.0, 40.0], se: [-165.0, -50.0] ]
G3dRender.LoadShapeClass[ G3dRender.FindShape[context3d, "Egg"], $PolygonWithNormals ]
ColorDisplayRender.MakeHiResFrame[ context3d, 1000, 1000, "SphereSmoothCover1000x1000.ais" ]
ColorAisToInterpress SphereSmoothCover1000x1000
InterPressToPD SphereSmoothCover1000x1000.interpress Color400 ColorCorrection 1.58 scale
PeachPrint MtFuji SphereSmoothCover1000x1000.PD
Three object animation
G3dRender.AddShapeFromFile[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CheckerBoard"], [.8, .4, .2] ]; -- add shading
G3dRender.AddShapeFromFile[ context3d, "Icosahedron", "Icosahedron.shape", [2.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Icosahedron"], [1.0, 1.0, 1.0] ]
G3dRender.AddShapeFromFile[ context3d, "SoccerBall", "SoccerBall.shape", [-2.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "SoccerBall"], [1.0, 1.0, 1.0] ]
G3dRender.AddShapeFromFile[ context3d, "CutCube", "CutCube.shape", [0.0, 3.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CutCube"], [.9, .8, .5] ]
Performance: 8-bit - 0.35s
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"CheckerBoard"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"SoccerBall"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"CutCube"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"Icosahedron"]]
G3dRender.SetVisible[ G3dRender.FindShape[context3d,"CheckerBoard"]]
G3dRender.SetVisible[ G3dRender.FindShape[context3d,"Icosahedron"]]
G3dRender.SetVisible[ G3dRender.FindShape[context3d,"CutCube"]]
G3dRender.DeleteShape[context3d, "CheckerBoard"]
G3dRender.DeleteShape[context3d, "CutCube"]
G3dRender.DeleteShape[context3d, "SoccerBall"]
G3dRender.DeleteShape[context3d, "Icosahedron"]
Glass, Banana, and Egg
Reset[]
G3dRender.AddShapeFromFile[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [1.0, 0.0, 0.0]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "ChampagneGlass"], [1.0, 0.0, 1.0] ]
G3dRender.RotateShapeLocal[ context: context3d, shapeName: "ChampagneGlass", theta: -45 ];
G3dRender.SetColor[context3d, "ChampagneGlass"], [1.0,0.0,1.0] ];
G3dRender.SetRenderStyle[context3d, "ChampagneGlass" ];
G3dRender.SetShininess[ context3d, "ChampagneGlass", 50.0 ]
G3dRender.SetTransmittance[ context3d, "ChampagneGlass", 0.8 ];
G3dRender.AddShapeFromFile[ context3d, "UtahEgg", "UtahEgg.shape", [-1.5, .0, .0] ]
G3dRender.OrientShape[ context: context3d, shapeName: "UtahEgg", axis: [-1, 1, 0] ];
G3dRender.SetColor[ G3dRender.FindShape[context3d, "UtahEgg"], [1.0, .8, .5] ]
G3dRender.SetRenderStyle[context3d, "UtahEgg" ];
G3dRender.SetShininess[ context3d, "UtahEgg", 50.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana", "Banana.shape", [0.0, .0, .0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana", [1.0, .9, .1] ]
G3dRender.SetShininess[ context3d, "Banana", 50.0 ]
G3dRender.SetRenderStyle[context3d, "Banana" ];
G3dRender.NameBackgroundColor[ context3d, "Light Very Dark Blue" ]
G3dRender.SetView[ context3d, [3.4295, -0.9765625, 1.0985], [0.0, 0.0, 0.0] ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "UtahEgg", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "UtahEgg" ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "UtahEgg", [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "ChampagneGlass", $TwistedStripes ]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dRender.SetView[ context3d, [6.166667, -2.2, 3.266667], [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -3.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CheckerBoard", [.8, .4, .2] ]
G3dRender.SetFaceted[ context3d, "CheckerBoard" ]
G3dRender.FindShape[ context3d, "CheckerBoard" ].centroid.z ← -5.0
G3dRender.AddShapeFromFile[ context3d, "CheckerBoard2", "CheckerBoard.shape", [-8.0, -8.0, -3.0] ]
G3dRender.RotateShape[context3d, "CheckerBoard2", [8.0, 8.0, 0.0], [8.0, 8.0, 1.0], -90]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CheckerBoard2", [.1, .1, .1] ]
G3dRender.SetFaceted[ context3d, "CheckerBoard2" ]
G3dRender.FindShape[ context3d, "CheckerBoard2" ].centroid.z ← -5.0
GetOffScreenCtx[context3d, 720, 486];
G3dRender.SetWindow[offScreenCtx, [x: -1.0, y: -0.75, w: 2.0, h: 1.5] ]
G3dAnimationSupport.Orbit[ context: offScreenCtx, lookingFrom: context3d.eyePoint, lookingAt: [0.0, 0.0, 0.0], axis: [0.3, 0.0, 1.0], base: [0.0, 0.0, 0.0], moveEPNotCI: TRUE, framesPerRev: 60, startAt: 0, endAt: 59, filename: "///Users/Crow.pa/AIS/Animation/AbekasStillCloser.rgb" ]
G3dRender.SetViewPort[ context3d, [120.0, 90.0, 400.0, 300.0] ]
DistributedRender.MakeFrame[context3d]
SummonerClientRequests
SummonerInfo
G3dMappedAndSolidTexture.RemoveAllTexture[context3d, "ChampagneGlass" ]
G3dAnimationSupport.Orbit[context: context3d, lookingFrom: [0.0, -7.0, 2.0], lookingAt: [0.0, 0.0, 0.0], axis: [-0.1, 0.0, 1.0], base: [0.0, 0.0, 0.0], moveEPNotCI: TRUE, framesPerRev: 40, startAt: 0, endAt: 39, filename: "///Users/Crow.pa/AIS/StillCloser.ais" ]
Performance: 24-bit - 8.4s, 8-bit - 1.0s, 4-bit - 1.0s
Performance: 24-bit - 8.4s, 8-bit - 3.3s, 8-bit dithered- 7.6s, 4-bit dithered - 7.0s
G3dRender.DeleteShape[context3d, "ChampagneGlass"]
G3dRender.DeleteShape[context3d, "UtahEgg"]
G3dRender.DeleteShape[context3d, "Banana"]
Glass alone
G3dRender.DeleteShape[context3d, "UtahEgg"]
G3dRender.DeleteShape[context3d, "Banana"]
G3dRender.PlaceShape[ context3d, "ChampagneGlass", [0.0, 0.0, 0.0] ];
G3dRender.SetColor[ G3dRender.FindShape[context3d, "ChampagneGlass", [0.0, .9, .5] ]
G3dRender.SetRenderStyle[ context3d, "ChampagneGlass" ]
context3d.props ← Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background
MakeFrame[]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"ChampagneGlass"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"UtahEgg"]]
G3dRender.SetInvisible[ G3dRender.FindShape[context3d,"Banana"]]
G3dRender.SetVisible[ G3dRender.FindShape[context3d,"Banana"]]
G3dRender.SetVisible[ G3dRender.FindShape[context3d,"ChampagneGlass"]]
Single Square
G3dRender.AddShapeFromFile[ context3d, "Square.obj", "/User/Crow/Shapes/Square.shape"]
G3dRender.AddLight[context3d, "Initial", [0.0, 0.0, 100.0], [1.0, 1.0, 1.0] ]
G3dRender.SetAmbientLight[ context3d, "light grey" ]
G3dRender.SetView[ [2, -3.0, 2], [0.0, 0.0, 0.0] ]
MakeFrame[]
A Single Anti-Aliased Colored Icosahedron -- set color display to 24-bits
Reset[]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dRender.AddShapeFromFile[ context3d, "Icosahedron", "Icosahedron.shape", [0.0, 0.0, 0.0] ]
G3dRender.SetView[ [7.0, 7.0, 4.0], [0.0, 0.0, 0.0] ]
MakeFrame[]
Trees
G3dRender.AddShapeFromFile[ context3d, "treetest1", "treetest1.pp", [0.0, .0, .0] ]
ShapeTwiddle.ScaleShape[ context3d, "treetest1", 10.0 ]
G3dRender.OrientShape[ context3d, "treetest1", [0.0, -1.0, 0.0]]
ShapeTwiddle.ScaleTexture[ context3d, "treetest1", 50.0 ]
ShapeTwiddle.Bounds[context3d, "treetest1" ]
G3dRender.SetView[context3d, [2.0, -10.0, 3.0], [0.0, 0.0, 3.0] ]
G3dRender.WriteShape[context: context3d, shapeName: "treetest1", fileName: "Tree1"], xyz: TRUE, normal: TRUE, color: FALSE, trans: FALSE, texture: TRUE, polyClr: FALSE]
ThreeDMisc.AddShapeFromFile[ context3d, "TreeTest1", "TreeTest1.shape", [0.0, .0, .0] ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "TreeTest1", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "bark.ais" ]
Bezier Patch Objects
ThreeDMisc.AddShapeFromFile[context3d, "TeaPot", "TeaPotTubes.shape", [0.0, 0.0, -1.25] ]
G3dRender.FindShape[ context3d.shapes, "TeaPot" ].shadingClass.shadingType ← $CtlPts  -- display control points as lines
G3dRender.SetView[context3d, [-5.6, -7.066667, 2.666667], [0.0, 0.0, 0.0] ] -- good teapot view

   
Reset[]
Sphere
G3dRender.AddShapeFromFile[ context3d, "Sphere", "Sphere.shape", [0.0, 0.0, 0.0]]
G3dRender.AddShapeFromFile[ context3d, "Sphere2", "Sphere.shape", [0.3, 0.0, 0.0]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Sphere", [.3, 1.0, .3] ]
G3dRender.SetRenderStyle[ context3d, "Sphere" ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Sphere2", [1.0, .3, .3] ]
G3dRender.SetRenderStyle[ context3d, "Sphere2" ]
G3dRender.AddShape[ context3d, G3dRender.CopyShape[ context3d, "PolySphere", "Sphere"] ]
ShapeTwiddle.ShapeExpand[ context3d, "PolySphere", NIL, 16.1 ]
G3dRender.DeleteShape[ context3d, "Sphere" ]
ShapeTwiddle.CleanUp[ context: context3d, name: "PolySphere", deSeam: TRUE, tolerance: 0.00001 ]
G3dRender.WriteShape[ context3d, "PolySphere", "PolySphere" ]
G3dRender.DeleteShape[ context3d, "PolySphere" ]
DoughNut
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "DoughNut", fileName: "DoughNut.shape", position: [0.0, 0.0, 0.0]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "DoughNut", [.5, .5, .8] ]
G3dRender.SetRenderStyle[ context3d, "DoughNut" ]
G3dRender.OrientShape[ context3d, "DoughNut", [0.0, -1.0, 0.0] ]
ShapeTwiddle.ShapeExpand[ context3d, "DoughNut", NIL, 5.0 ]
ShapeTwiddle.ShapeSubdivide[ context3d, "DoughNut", NIL, 0.0 ]
TeaPot modifications
G3dRender.AddShapeFromFile[ context3d, "TeaPot", "TeaPot.bezier", [0.0, 0.0, 0.0]]
G3dRender.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], [0.0, -1.0, 0.0]]
G3dRender.AddShapeFromFile[ context3d, "TeaPotBot", "TeaPotBot.bezier", position: [0.0, 0.0, 0.0]]
G3dRender.AddShape[ context3d.shapes, ShapeTwiddle.Combine[ context3d, "TeaPotWithBot", "TeaPot", "TeaPotBot"] ]
ShapeTwiddle.Bounds[context3d, "TeaPotWithBot" ]
G3dRender.PlaceShape[context3d, "TeaPotWithBot", [0.0, 0.0, 0.15 ] ]
G3dRender.WriteShape[context3d, "TeaPotWithBot", "TeaPotWithBot.bezier"]
ThreeDScenes.AddShape[ context3d, ShapeTwiddle.DeletePatches[context3d, "TeaPotLid", "TeaPot", LIST[ [0, 19], [28, 31] ] ] ]
ShapeTwiddle.ScaleShape[ context3d, "TeaPotLid", 1.0, 1.07, 1.07, .9 ]
ShapeTwiddle.CleanUp[ context3d, "TeaPotLid" ]
G3dRender.WriteShape[context3d, "TeaPotLid", "TeaPotLid.bezier"]
ThreeDScenes.AddShape[ context3d, ShapeTwiddle.DeletePatches[ context3d, "TeaPotNoLid", "TeaPot", LIST[ [20, 27] ] ] ]
ShapeTwiddle.CleanUp[ context3d, "TeaPotNoLid" ]
G3dRender.WriteShape[context3d, "TeaPotNoLid", "TeaPotNoLid.bezier"]
ThreeDScenes.AddShape[ context3d, ShapeTwiddle.DeletePatches[context3d, "SugarBowl", "TeaPot", LIST[ [8, 27] ] ] ]
ShapeTwiddle.CleanUp[ context: context3d, name: "SugarBowl", deSeam: TRUE, tolerance: 0.00001 ]
G3dRender.WriteShape[context3d, "SugarBowl", "SugarBowl.bezier"]
TeaPot displays
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotWithBot.shape", position: [0.0, 0.0, -1.25]]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotNoLid.shape", position: [0.0, 0.0, -1.25]]
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Lid", fileName: "TeaPotLid.bezier", position: [0.0, 0.0, -1.025]]
G3dRender.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid"], [0.0, 0.0, 0.0], [0.0, 0.0, 1.0], -15.0 ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "TeaPot", [0.8, 0.8, 0.8] ]
G3dRender.SetRenderStyle[ context3d, "TeaPot" ]
G3dRender.SetView[context3d, [-0.5, -10.0, 3.0], [0.0, 0.0, 0.0] ]  -- hides joins
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "TeaPotBot", fileName: "TeaPotBot.shape", position: [0.0, 0.0, -1.25]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "TeaPotBot", [.5, .5, .8] ]
G3dRender.SetRenderStyle[ context3d, "TeaPotBot" ]
ShapeTwiddle.ShapeExpand[ context3d, "TeaPotBot", NIL, 5.0 ]
ShapeTwiddle.ShapeExpand[ context3d, "TeaPot", NIL, 5.0 ]
ThreeDSurfaces.ShapeSubdivide[ context3d, "TeaPot", NIL, 0.0 ]
ShapeTwiddle.ShapeExpand[ context3d, "TeaPot", NIL, 16.1 ]
ShapeTwiddle.CleanUp[ context3d, "TeaPot", TRUE, .0025 ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "TeaPot", [0.8, 0.8, 0.8] ]
G3dRender.SetRenderStyle[ context3d, "TeaPot" ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Shape0", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "Texture.ais", $Intensity] ]
G3dMappedAndSolidTexture.SetPatchTextureCoords[ context3d, "Shape0" ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ context3d, "Shape0", [0.0, 0.0], [0.0, 2.0], [6.1, 2.0], [6.1, 0.0] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "TeaPot" ] ]
G3dRender.SetShininess[ context3d, "TeaPot", 60.0 ]
MakeFrame[]        -- this will take a while
G3dColorDisplaySupport.PutAIS[context3d, "PagedTeaPot3.ais" ]
ShapeTwiddle.ShapeExpand[ context3d, "TeaPot", NIL, 16.1 ]
ShapeTwiddle.ShapeExpand[ context3d, "Lid", NIL, 16.1 ]
ShapeTwiddle.CleanUp[ context3d, "TeaPot", TRUE, .0025 ]
ShapeTwiddle.CleanUp[ context3d, "Lid", TRUE, .0025 ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "TeaPot", [1.0, 1.0, 1.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Lid", [1.0, 1.0, 1.0] ]
context3d.props ← Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "TeaPot", $ZebraBurl ] -- marble teapot
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Lid", $ZebraBurl ]
G3dRender.SetShininess[ context3d, "TeaPot", 50.0 ]
G3dRender.SetShininess[ context3d, "Lid", 50.0 ]
G3dRender.AddLight[context3d, "Initial", [-200.0, -200.0, 400.0], [1.0, 1.0, 1.0] ]
G3dRender.StartLog[context3d]
MakeFrame[]
G3dColorDisplaySupport.PutAIS[context3d, "ZebraBurlTeaPot.ais" ]
ColorDisplayRender.MakeHiResFrame[context3d, 1024, 768, "ZebraBurlTeaPotHiRes.ais" ]
GetOffScreenCtx[context3d, 1024, 768]
G3dColorDisplaySupport.GetAIS[offScreenCtx, "/Cyan/AIS/Crow/ZebraBurlTeaPotHiRes.ais" ]
ImageTwiddle.AdjustValueRamp[offScreenCtx, [.7, .5, .7]]
ImageTwiddle.AdjustSaturation[offScreenCtx, 0.5 ]
G3dColorDisplaySupport.PutAIS[offScreenCtx, "PrinterReadyTeaPotHiRes.ais" ]
ColorAISToInterpress PrinterReadyTeaPotHiRes
InterpressToPD PrinterReadyTeaPotHiRes.interpress color400 90 rotate 10.25 in 0 in translate 1.6 scale
PeachPrint MtFuji PrinterReadyTeaPotHiRes.PD
G3dColorDisplaySupport.GetAIS[context3d, "StillLife2.ais" ]
ImageTwiddle.AdjustValueRamp[context3d, [.7, .5, .7]]
ImageTwiddle.AdjustSaturation[context3d, 0.5 ]
G3dColorDisplaySupport.PutAIS[context3d, "StillLife2Prep.ais" ]
ColorAISToInterpress StillLife2Prep
InterpressToPD StillLife2Prep.interpress Color400 1.25 scale
PeachPrint MtFuji StillLife2Prep.pd
Jug
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Jug", fileName: "Jug.bezier", position: [0.0, 0.0, -1.25]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Jug", [.5, .5, .8] ]
G3dRender.SetRenderStyle[ context3d, "Jug" ]
G3dRender.OrientShape[context3d, "Jug", [0.0, -1.0, 0.0]]
Saucer
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Saucer", fileName: "Saucer.bezier", position: [0.0, 0.0, -1.25]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Saucer", [.5, .5, .8] ]
G3dRender.SetRenderStyle[ context3d, "Saucer" ]
G3dRender.OrientShape[context3d, "Saucer", [0.0, -1.0, 0.0]]
Teacup
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Teacup", fileName: "Teacup.bezier", position: [0.0, 0.0, -1.25]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Saucer", [.5, .5, .8] ]
G3dRender.SetRenderStyle[ context3d, "Saucer" ]
G3dRender.OrientShape[context3d, "Teacup", [0.0, -1.0, 0.0]]
Teaspoon
G3dRender.AddShapeFromFile[ context: context3d, shapeName: "Teaspoon", fileName: "Teaspoon.bezier", position: [0.0, 0.0, 0.0]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Teaspoon", [.5, .5, .8] ]
G3dRender.SetRenderStyle[ context3d, "Teaspoon" ]
ShapeTwiddle.ShapeExpand[ context3d, "Teaspoon", NIL, 12.0 ]
G3dRender.SetFaceted[ context3d, "Teaspoon" ]
G3dRender.SetView[context3d, [1.47, 2.6, 1.933], [ 0.1, -0.5, 0.0] ]  -- view over big end
Hexagonally tiled plane
G3dRender.RestoreFromFile[context3d, "/User/Crow/Shapes/HexTiles.scene" ]
G3dRender.SaveOnFile[ context3d, "HexTiles.scene" ]
G3dRender.SetView[ context3d, [0.0, -100.0, 70.0], [0.0, -11.0, 0.0] ]
Artfully tiled plane   -- needs fixed below here!!!!
ThreeDMisc.AddShapeFromFile[ context3d, "tiles000", "tiles.shape", [-5.05, -4.70, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles000", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles001", "tiles.shape", [-5.05, -5.64, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles001", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles002, "tiles.shape", [-4.10, -5.17, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles002", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles010", "tiles.shape", [-5.05, -2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles010", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles011", "tiles.shape", [-5.05, -3.76, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles011", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles012, "tiles.shape", [-4.10, -3.29, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles012", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles020", "tiles.shape", [-5.05, -0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles020", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles021", "tiles.shape", [-5.05, -1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles021", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles022, "tiles.shape", [-4.10, -1.41, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles022", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles030", "tiles.shape", [-5.05, 0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles030", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles031", "tiles.shape", [-5.05, 0.0, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles031", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles032, "tiles.shape", [-4.10, 0.47, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles032", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles040", "tiles.shape", [-5.05, 2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles040", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles041", "tiles.shape", [-5.05, 1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles041", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles042, "tiles.shape", [-4.10, 2.35, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles042", [0.2, 0.22, 0.0]

ThreeDMisc.AddShapeFromFile[ context3d, "tiles100", "tiles.shape", [-3.03, -4.70, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles100", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles101", "tiles.shape", [-3.03, -5.64, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles101", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles102, "tiles.shape", [-2.08, -5.17, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles102", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles110", "tiles.shape", [-3.03, -2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles110", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles111", "tiles.shape", [-3.03, -3.76, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles111", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles112, "tiles.shape", [-2.08, -3.29, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles112", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles120", "tiles.shape", [-3.03, -0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles120", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles121", "tiles.shape", [-3.03, -1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles121", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles122, "tiles.shape", [-2.08, -1.41, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles122", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles130", "tiles.shape", [-3.03, 0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles130", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles131", "tiles.shape", [-3.03, 0.0, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles131", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles132, "tiles.shape", [-2.08, 0.47, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles132", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles140", "tiles.shape", [-3.03, 2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles140", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles141", "tiles.shape", [-3.03, 1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles141", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles142, "tiles.shape", [-2.08, 2.35, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles142", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles200", "tiles.shape", [-1.01, -4.70, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles200", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles201", "tiles.shape", [-1.01, -5.64, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles201", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles202, "tiles.shape", [-0.06, -5.17, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles202", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles210", "tiles.shape", [-1.01, -2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles210", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles211", "tiles.shape", [-1.01, -3.76, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles211", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles212, "tiles.shape", [-0.06, -3.29, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles212", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles220", "tiles.shape", [-1.01, -0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles220", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles221", "tiles.shape", [-1.01, -1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles221", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles222, "tiles.shape", [-0.06, -1.41, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles222", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles230", "tiles.shape", [-1.01, 0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles230", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles231", "tiles.shape", [-1.01, 0.0, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles231", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles232, "tiles.shape", [-0.06, 0.47, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles232", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles240", "tiles.shape", [-1.01, 2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles240", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles241", "tiles.shape", [-1.01, 1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles241", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles242, "tiles.shape", [-0.06, 2.35, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles242", [0.2, 0.22, 0.0]

ThreeDMisc.AddShapeFromFile[ context3d, "tiles300", "tiles.shape", [1.01, -4.70, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles300", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles301", "tiles.shape", [1.01, -5.64, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles301", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles302, "tiles.shape", [1.96, -5.17, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles302", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles310", "tiles.shape", [1.01, -2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles310", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles311", "tiles.shape", [1.01, -3.76, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles311", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles312, "tiles.shape", [1.96, -3.29, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles312", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles320", "tiles.shape", [1.01, -0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles320", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles321", "tiles.shape", [1.01, -1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles321", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles322, "tiles.shape", [1.96, -1.41, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles322", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles330", "tiles.shape", [1.01, 0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles330", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles331", "tiles.shape", [1.01, 0.0, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles331", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles332, "tiles.shape", [1.96, 0.47, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles332", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles340", "tiles.shape", [1.01, 2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles340", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles341", "tiles.shape", [1.01, 1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles341", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles342, "tiles.shape", [1.96, 2.35, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles342", [0.2, 0.22, 0.0]

ThreeDMisc.AddShapeFromFile[ context3d, "tiles400", "tiles.shape", [3.03, -4.70, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles400", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles401", "tiles.shape", [3.03, -5.64, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles401", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles402, "tiles.shape", [3.98, -5.17, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles402", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles410", "tiles.shape", [3.03, -2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles410", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles411", "tiles.shape", [3.03, -3.76, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles411", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles412, "tiles.shape", [3.98, -3.29, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles412", [0.2, 0.22, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles420", "tiles.shape", [3.03, -0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles420", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles421", "tiles.shape", [3.03, -1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles421", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles422, "tiles.shape", [3.98, -1.41, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles422", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles430", "tiles.shape", [3.03, 0.94, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles430", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles431", "tiles.shape", [3.03, 0.0, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles431", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles432, "tiles.shape", [3.98, 0.47, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles432", [0.2, 0.22, 0.0]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles440", "tiles.shape", [3.03, 2.82, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles440", [0.3, 0.2, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles441", "tiles.shape", [3.03, 1.88, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles441", [0.7, 0.1, 0.0] ]
ThreeDMisc.AddShapeFromFile[ context3d, "tiles442, "tiles.shape", [3.98, 2.35, 0.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "tiles442", [0.2, 0.22, 0.0]
Texture Generation -- set color display to 8-bits
Reset[]
[] ← ThreeDViewer.SwitchDisplayTo[context3d, $Gray8]
G3dRender.SetViewPort[ context3d, [220.0, 140.0, 200.0, 200.0] ]
G3dRenderWithPixels.BufferRendering[context3d]
context3d.class.updateViewer[context3d]
ImageProcs.MakeStripes[context: context3d, numStripes: 12, min: 0.2, max: 0.8, power: 1.0]
ShowPixels[]
G3dColorDisplaySupport.PutAIS[context3d, "Stripes.ais" ]
ImageProcs.MakeStretchedSpots[context: context3d, spotsAcross: 16, min: 0.0, max: 1.0, power: 1.0, stretched: FALSE]
ShowPixels[]
G3dColorDisplaySupport.PutAIS[context3d, "Texture.ais" ]
GetOffScreenCtx[context3d, 640, 480]    -- vertical bar resolution test at arbitrary res.
ImageProcs.MakeBarTest[ offScreenCtx ]
G3dColorDisplaySupport.PutAIS[offScreenCtx, "Bars640.ais" ]
Texture Mapped Sphere -- set color display to 24-bits
Reset[]
ThreeDMisc.AddShapeFromFile[ context3d, "Sphere", "PolySphere.shape"]
ThreeDMisc.SetRenderStyleColor[ context3d, "Sphere", [0.9, 0.9, 0.9] ]
SetAntiAliased[]     -- same as pushing the "NoJaggy" button
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Sphere", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "IACR.ais", $Color] ]
G3dMappedAndSolidTexture.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], [0.0, 0.0], [0.0, 0.6], [1.0, 0.6], [1.0, 0.0], [-150.0, -30.0], [-150.0, 90.0], [-35.0, 90.0], [-35.0, -30.0] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ] ]
ThreeDScenes.SetView[context3d, [0.0, -4.0, 2.0], [0.0, 0.0, 0.0] ]
MakeFrame[]        -- this will take a while
G3dColorDisplaySupport.PutAIS[context3d, "SphereWithIACR.ais" ]
SetViewPort[ [220.0, 165.0, 200.0, 150.0] ]   -- missing triangle case
ThreeDScenes.SetWindow[ context3d, [-.3, 0.5, 0.6, 0.375] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], [0.0, 0.0], [0.0, 3.0], [6.1, 3.0], [6.1, 0.0] ]
MakeFrame[]        -- this will take a while
G3dColorDisplaySupport.PutAIS[context3d, "SphereWithPages.ais" ]
print spheres on color printer
ColorAISToInterpress /Cyan/AIS/Crow/SphereWithPage
InterpressToPD SphereWithPage.interpress Color400 1.25 scale
PeachPrint MtFuji SphereWithPage.pd
ColorAISToInterpress /Cyan/AIS/Crow/SphereWithPages
InterpressToPD SphereWithPages.interpress Color400 1.25 scale
PeachPrint MtFuji SphereWithPages.pd
Textured SugarBowl -- set color display to 24-bits
Reset[]
ThreeDMisc.AddShapeFromFile[ context3d, "SugarBowl", "SugarBowl.bezier", [0.0, 0.0, 0.0]]
ThreeDMisc.AddShapeFromFile[ context3d, "Lid", "TeaPotLid.bezier", [0.0, 0.0, 0.0]]
ThreeDMisc.AddShapeFromFile[ context3d, "Spoon", "TeaSpoon.bezier", [0.0, 0.0, 0.0]]
ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], [-1.0, 0.9, 2.5]]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], [-1.0, 0.0, 2.5], [-1.5, 0.0, 2.5], -10]
ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], [0.1, 0.0, 0.0]]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], [0.0, 0.0, 2.5], [0.0, 1.0, 2.5], 20]
context3d.ptOfInterest ← [0.0, 0.0, 1.4]
context3d.eyePoint ← [-8.133, 1.733, 4.8]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], NIL, 10.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], NIL, 10.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "SugarBowl" ], NIL, 10.0 ]
ThreeDMisc.GetShadingProcs[context3d, "Lid", ShadingProcs.GetLerpedVals, ShadingProcs.AddColoredMarble ]
MakeFrame[]        -- this will take a while
G3dColorDisplaySupport.PutAIS[context3d, "BowlAndSpoon.ais" ]
Texture Mapped Glasses -- set color display to 24-bits
Reset[]
SetAntiAliased[]     -- same as pushing the "NoJaggy" button
ThreeDMisc.AddShapeFromFile[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [-2.0, .0, .0] ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], TextureMaps.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", NIL] ]
ThreeDMisc.SetRenderStyleColor[ context3d, "ChampagneGlass", [0.0, 1.0, 0.2] ]
TextureMaps.MakeTxtrCoordsFromVtxNos[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], 19, 20, [0.0, 0.0], [1.0, 3.0], [3.0, 3.0], [2.0, 0.0] ]
ThreeDScenes.AddLight[context3d, "Initial", [100.0, 0.0, 100.0], [1.0, 1.0, 0.7] ]
TextureMaps.SumTexture[ context3d.shapes, "ChampagneGlass" ]
ThreeDMisc.AddShapeFromFile[ context3d, "ChampagneGlass2", "ChampagneGlass.shape", [2.0, .0, .0] ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ], TextureMaps.TextureFromAIS[context3d, "/CedarChest7.0/ThreeDWorld/Texture.ais", $Bump] ]
ThreeDMisc.SetRenderStyleColor[ context3d, "ChampagneGlass2", [0.0, 0.2, 1.0] ]
ThreeDMisc.SetShininess[ context3d, "ChampagneGlass2", 50.0 ]
TextureMaps.MakeTxtrCoordsFromVtxNos[ context3d, "ChampagneGlass2", 19, 20, [0.0, 0.0], [1.0, 3.0], [3.0, 3.0], [2.0, 0.0] ]
TextureMaps.SumAllMappedTextures[ context3d.shapes, "ChampagneGlass2" ]
ThreeDScenes.SetView[context3d, [0.0, -12.0, 3.0], [0.0, 0.0, 0.0] ]
MakeFrame[]        -- this will take a while
Heart
Reset[]
G3dRender.AddShapeFromFile[ context3d, "Heart", "Heart.shape", [0.0, 0.0, 0.0]]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Heart", [1.0, 0.0, 0.0] ]
G3dRender.SetFaceted[ context3d, "Heart" ]
G3dRender.SetShininess[ context3d, "Heart", 100.0 ]
G3dRender.AddLight[context3d, "Initial", [77.0, 196.0, 50.0], [1.0, 1.0, 1.0] ]
G3dRender.SetView[context3d, [x: 1.133333, y: -1.9, z: 4.333333], [0.0, 0.0, 0.0] ]
StandardPatchProcs.recurseLimit ← 4
RenderWithImager.MakeInterpressPage[ context3d, "Heart3d.ip" ]
InterpressToPD Heart.ip Color400 ColorCorrection 1.25 scale
PeachPrint -f MtFuji Heart.pd
G3dRender.SetView[context3d, [0.0, 0.7, 3.0], [0.0, 0.7, 0.0] ]
ShapeTwiddle.ShapeSubdivide[context3d, Heart ]
ShapeTwiddle.ShapeExpand[ context3d, Heart, NIL, 4 ]
PaperWeb with text
Reset[]
G3dRender.AddLight[context: context3d, name: "Default", position: [-10.0, -200.0, 200.0] ]
G3dRender.SetAmbientLight[ context3d, "Lightish Grey" ]
G3dRender.NameBackgroundColor[ context3d, "Very Dark Grey" ]
G3dRender.AddShapeFromFile[ context3d, "Web", "PaperWeb.shape", [.0, .0, .0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Web", [0.8, 1.0, 0.8] ]
G3dRender.SetRenderStyle[ context3d, "Web" ]
G3dMappedAndSolidTexture.AddMappedTexture[ context3d, "Web", G3dMappedAndSolidTexture.TextureFromAIS[context3d, "/User/crow/AIS/page-Red.ais", $Intensity] ]
G3dMappedAndSolidTexture.SumAllMappedTextures[ context3d, "Web" ]
G3dRender.SetView[context3d, [0.53, -3.3, -0.4], [0.5, 0.0, 0.9] ]
G3dRenderWithPixels.AntiAliasing[context3d]
MakeFrame[]
ColorDisplayRender.MakeHiResFrame[ context3d, 1024, 768, "PaperWeb1024x768.ais" ]
ColorAISToInterpress WebAndText
InterpressToPD WebAndText.interpress Color400 1.25 scale
PeachPrint MtFuji PaperWeb1024x768-grey.pd
G3dAnimationSupport.OrbitEye[context3d, [2.1, -3.0, -0.2], [.0,.0,.0], [1.4, -3.0, -0.1], [.0,.0,.0], 40, "///Users/Crow.pa/AIS/Animation/PaperWeb.ais", 40]
G3dRender.SetViewPort[ context3d, [120.0, 90.0, 400.0, 300.0] ]
G3dRender.OrientShape[ context3d, "Web", [1.0, 0.0, 0.0]]
G3dRender.RotateShapeLocal[ context3d, "Web", 180.0 ]
G3dRender.HideBackfaces[context3d, "Web"]
ShapeTwiddle.ScaleTexture[context: context3d, name: "Web", scale: 1.0, xRatio: 1.0, yRatio: -1.0, zRatio: 1.0]
Animation3D.SetTxtrTranslation[G3dRender.FindShape[context3d, "Web"], [0.0, 1.0], 40]
G3dAnimationSupport.Orbit[context3d, [0.53, -3.3, -0.4], [0.5, 0.0, 0.9], [0.5, -3.3, .2], [0.5, -3.3, -0.4], TRUE, 40, 0, 39, "Paper4Web.ais"]
G3dRender.OrientShape[ context3d, "Web", [0.0, 0.0, 1.0]]
G3dRender.ShowBackfaces[G3dRender.FindShape[context3d, "Web"]]
Animation3D.SetTxtrTranslation[G3dRender.FindShape[context3d, "Web"], [0.0, 1.0], 40]
G3dAnimationSupport.Orbit[context3d, [0.53, -3.3, -0.4], [0.5, 0.0, 0.9], [0.5, -3.3, .2], [0.5, -3.3, -0.4], TRUE, 40, 0, 39, "Paper5Web.ais"]
G3dAnimationSupport.Orbit[context3d, [0.53, -3.3, -0.4], [0.5, 0.0, 0.9], [0.5, -3.3, .2], [0.5, -3.3, -0.4], TRUE, 10 ]
Anti-aliased checkerboards
Reset[]
SetAntiAliased[]
ThreeDMisc.AddShapeFromFile[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [1.0, 1.0, 0.0] ]
ThreeDMisc.SetAmbientLight[ context3d, [.7, .7, .7] ]
ThreeDScenes.AddLight[ context3d, "Initial", [0.0, 0.0, 100.0], [1.0, 1.0, 1.0] ]
ThreeDScenes.SetView[ context3d, [10, -30.0, 100.0], [0.0,-20.0, 0.0] ]
MakeFrame[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 500.0], [0.0,-50.0, 0.0] ]
ShowShapes[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 1000.0], [0.0, 100.0, 0.0] ]
ShowShapes[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 1400.0], [0.0, 200.0, 0.0] ]
ShowShapes[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 3000.0], [0.0, 500.0, 0.0] ]
ShowShapes[]
Tiler Statistics
ScanconvertImpl.InitHistograms[100, 100]
ScanconvertImpl.ClearHistograms[]
ScanconvertImpl.statistics ← TRUE
MakeFrame[]
ScanconvertImpl.ShowHistograms[context3d]
ScanconvertImpl.polyCount
ScanconvertImpl.avePixelsPerPoly
ScanconvertImpl.aveScanSegLength
ScanconvertImpl.avePolyHeight
ScanconvertImpl.statistics ← FALSE
Tiler Test Pattern
Reset[]
G3dRender.AddShapeFromFile[context3d, "TilerTest", "/Ivy/Crow/Shapes/TilerTest.shape", [0.0, 0.0, 0.0] ]
G3dRender.SetView[ context3d, [0.0, -10.0, 0.0], [0.0, 0.0, 0.0] ]
G3dRender.SetViewPort[ context3d, [0.0, 0.0, 320.0, 453.0] ]
G3dRender.SetViewPort[ context3d, [319.0, 0.0, 320.0, 453.0] ]
G3dRenderWithPixels.AntiAliasing[context3d]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "TilerTest", $Checks ]
FacetedDemo[]
MakeFrame[]
MultiProcess Rendering Basic Calls
← ComputeServerServerStubImpl.Registry.data!! -- local commands (make .impl.data for 7.0)
← ComputeServerServer.Registry.data!!  -- commands picked up by compute server
DistributedRenderImpl.minimumUsefulServerPortion ← 0.0 -- force use of server
DistributedRenderImpl.procClonesAllowed ← 1   -- prevent process cloning
DistributedRender.SetConcurrencyLevel[context3d, 2]
DistributedRenderImpl.imageSpaceDivision ← TRUE
DistributedRender.MakeFrame[context3d]
MultiProcess Scene tests
Field of Bananas
Reset[]
G3dRender.SetView[context3d, [-6.5, -13.8, 6.1], [0.6, 0.0, -1.0] ]
G3dRender.AddShapeFromFile[ context3d, "Banana00", "Banana.shape", [-4.0, -4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana00", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana00", 0.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana01", "Banana.shape", [-2.0, -4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana01", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana01", 50.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana02", "Banana.shape", [0.0, -4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana02", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana02", 100.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana03", "Banana.shape", [2.0, -4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana03", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana03", 150.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana04", "Banana.shape", [4.0, -4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana04", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana04", 200.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana10", "Banana.shape", [-4.0, -2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana10", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana10", 250.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana11", "Banana.shape", [-2.0, -2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana11", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana11", 300.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana12", "Banana.shape", [0.0, -2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana12", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana12", 350.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana13", "Banana.shape", [2.0, -2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana13", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana13", 20.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana14", "Banana.shape", [4.0, -2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana14", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana14", 37.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana20", "Banana.shape", [-4.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana20", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana20", 140.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana21", "Banana.shape", [-2.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana21", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana21", 120.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana22", "Banana.shape", [0.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana22", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana22", 260.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana23", "Banana.shape", [2.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana23", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana23", 340.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana24", "Banana.shape", [4.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana24", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana24", 270.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana30", "Banana.shape", [-4.0, 2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana30", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana30", 130.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana31", "Banana.shape", [-2.0, 2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana31", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana31", 110.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana32", "Banana.shape", [0.0, 2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana32", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana32", 25.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana33", "Banana.shape", [2.0, 2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana33", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana33", 70.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana34", "Banana.shape", [4.0, 2.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana34", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana34", 60.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana40", "Banana.shape", [-4.0, 4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana40", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana40", 20.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana41", "Banana.shape", [-2.0, 4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana41", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana41", 180.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana42", "Banana.shape", [0.0, 4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana42", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana42", 210.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana43", "Banana.shape", [2.0, 4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana43", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana43", 37.0 ]
G3dRender.AddShapeFromFile[ context3d, "Banana44", "Banana.shape", [4.0, 4.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Banana44", [1.0, 1.0, 0.1] ]
G3dRender.RotateShapeLocal[ context3d, "Banana44", 45.0 ]
SetAntiAliased[]
DistributedDisplayImpl.procClonesAllowed ← 1   -- avoid process clones and timeouts
DistributedRender.MakeFrame[context3d]
BurlWood Sphere
Reset[]
SetAntiAliased[]
SetViewPort[ [120.0, 90.0, 400.0, 300.0] ]
G3dRender.AddShapeFromFile[ context3d, "Sphere", "PolySphere.shape"]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "Sphere", [1.0, 1.0, 1.0] ]
G3dRender.SetRenderStyle[ context3d, "Sphere" ]
G3dRender.SetShininess[ context3d, "Sphere", 100.0 ]
ShapeTwiddle.ScaleShape[context3d, "Sphere", 3.0 ]
G3dMappedAndSolidTexture.AddSolidTexture[context3d, "Sphere", $BurlWood ]
ThreeDScenes.SetView[context3d, [-0.5, -14.0, 2.0], [0.0, 0.0, 0.0] ]
Test Image
Reset[]
SetAntiAliased[]
SetViewPort[ [120.0, 90.0, 400.0, 300.0] ]
ThreeDScenes.SetView[context3d, [0.5333334, -7.4, 3.0], [0.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "Icosahedron", "Icosahedron.shape", [3.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "SoccerBall", "SoccerBall.shape", [-3.0, 0.0, 0.0] ]
G3dRender.AddShapeFromFile[ context3d, "CutCube", "CutCube.shape", [0.0, 0.0, 0.0] ]
G3dRender.SetColor[ G3dRender.FindShape[context3d, "CutCube", [.9, .3, .1] ]
G3dRender.SetFaceted[ context3d, "CutCube" ]
ThreeDMisc.RemoteMakeFrame[context3d]
SetViewPort[ [220.0, 165.0, 200.0, 150.0] ]
DistributedRenderImpl.imageSpaceDivision ← TRUE  -- for parallel by image slices
DistributedRenderImpl.computingRemote ← FALSE  -- to test without compute server
DistributedRenderImpl.computingSerially ← TRUE  -- to force serial computation
DistributedRenderImpl.showBoxes ← TRUE    -- to show bounding boxes
DistributedRenderImpl.showBoxCoverage ← 0.35   -- strength of bounding boxes
DistributedRenderImpl.showGaps ← TRUE     -- to show slice lines
DistributedRenderImpl.procClonesAllowed ← 1 -- limits processors to first one, no timeout
   
DistributedRenderImpl.serverStatsWanted ← TRUE
DistributedRenderImpl.RemoteMakeFrame[context3d, 4]
ThreeDMisc.Hide[context3d, "SoccerBall"]
ThreeDMisc.Hide[context3d, "Icosahedron"]
ThreeDMisc.Hide[context3d, "CheckerBoard"]
Statistics runs
DistributedRenderImpl.procClonesAllowed ← 1   -- avoid process clones and timeouts
DistributedRender.MakeFrame[context3d, 20]
DistributedRender.MakeFrame[context3d, 15]
DistributedRender.MakeFrame[context3d, 10]
DistributedRender.MakeFrame[context3d, 9]
DistributedRender.MakeFrame[context3d, 8]
DistributedRender.MakeFrame[context3d, 7]
DistributedRender.MakeFrame[context3d, 6]
DistributedRender.MakeFrame[context3d, 5]
DistributedRender.MakeFrame[context3d, 4]
DistributedRender.MakeFrame[context3d, 3]
DistributedRender.MakeFrame[context3d, 2]
DistributedRender.MakeFrame[context3d, 1]
MakeFrame[]
DistributedRenderImpl.imageSpaceDivision ← TRUE
DistributedRender.MakeFrame[context3d, 10]
DistributedRender.MakeFrame[context3d, 9]
DistributedRender.MakeFrame[context3d, 8]
DistributedRender.MakeFrame[context3d, 7]
DistributedRender.MakeFrame[context3d, 6]
DistributedRender.MakeFrame[context3d, 5]
DistributedRender.MakeFrame[context3d, 4]
DistributedRender.MakeFrame[context3d, 3]
DistributedRender.MakeFrame[context3d, 2]
MakeFrame[]
SummonerClientRequests
SummonerInfo
ThreeDMisc.GetShadingProcs[context3d, "ChampagneGlass", NIL, NIL ]
&sgf[RenderOneShapeImpl]
ThreeDScenes.SetWindow[ context3d, [x: -1.0, y: -0.75, w: 1.0, h: 1.235] ]
SetViewPort[ [x: 0.0, y: 0.0, w: 200.0, h: 247.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [x: 0.0, y: -0.75, w: 1.0, h: 1.235] ]
SetViewPort[ [x: 200.0, y: 0.0, w: 200.0, h: 247.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [x: -0.33, y: -0.74, w: 0.24875, h: 1.095] ]
SetViewPort[ [x: 134.0, y: 2.0, w: 49.75, h: 219.0] ]
MakeFrame[]

ThreeDScenes.SetWindow[ context3d, [-1.0, -0.75, 0.5, 1.5] ]
SetViewPort[ [120.0, 90.0, 100.0, 300.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [-0.5, -0.75, 0.5, 1.5] ]
SetViewPort[ [220.0, 90.0, 100.0, 300.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [0.0, -0.75, 0.5, 1.5] ]
SetViewPort[ [320.0, 90.0, 100.0, 300.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [0.5, -0.75, 0.5, 1.5] ]
SetViewPort[ [420.0, 90.0, 100.0, 300.0] ]
MakeFrame[]
SetViewPort[ [0.0, 0.0, 640.0, 453.0] ]         -- defaults
ThreeDScenes.SetWindow[ context3d, [-1.0, -.7078125, 2.0, 1.415625] ]
EtherVoice Examples
Coookee Time?
Rock-a-by baby, in the tree top.
When the wind blows, the cradle will rock.
When the bough breaks, the cradle will fall.
and down will come baby, cradle and all.



Go in and out the window.
Go in and out the window.
Go in and out the window.
As we have done before.

 Hello, Ailey. How many daynosaurs do you have?
Different voices:
P;z:nb\ Beautiful Betty.
P;z:nd\ Doctor Dennis.
P;z:nf\ Frail Frank.
P;z:nh\ Huge Harry.
P;z:nk\ Kit the Kid.
P;z:np\ Perfect Paul. (default)
P;z:nr\ Rough Rita.
P;z:nu\ Uppity Ursula.
P;z:nw\ Whispery Wendy.
Speech rate:
P;z:ra 280\ speaks fast. rate in [120..350] words per minute; default 180 wpm.
P;z:ra 130\ speaks slowly.
P;z:ra 180\ normal.