// Generated by Algodoo v1.8.0 inclusive_range = (min, max)=>{min > max ? [] : {[min] ++ inclusive_range(min + 1, max)}}; SPH -> { kernelMultiplier = 0.635; incompressible = true; influence = 2.7; viscMultiplier = 1.0; solveT = 0.01; unilateral = true; lowMassCollisionRadiusFactor = 0.4; friction = 0.01; jitter = 0.0; sort = false; restitution = 0.0; maxNeighbors = 64; geomFieldOffset = 0.5; spikyKernel = true; geomFriction = 0.001; surfaceTension = 0.0; radius = 0.05; density = 1.0; solveIters = 1; minMassFactor = 3.0; nonPenetration = true; vaporizeTime = +inf; pressMultiplier = 1.0; specialPressure = true; solveConst = 1e+006; bucketSize = 2.0; geomMassMultiplier = 2.0; kernelNormalize = false; viscosity = 0.0; soundSpeed = 20.0; velocitySmoothing = false; geometryFields = true }; math -> { max = (a, b)=>{a > b ? a : b}; min = (a, b)=>{a < b ? a : b} }; Language -> { fallbackFontNameFixed = []; rightToLeft = false; fontScale = 1.0; forcedFontName = ""; metaVersion = 5; fallbackFontName = ["Verdana", "Sans"]; encoding = "iso-8859-1" }; Sim -> { airFrictionQuadratic = 0.0; blockedContactSolver4N = false; skipDistance = 0.15; solvePreSortConstraints = true; blockedContactSolver3N = true; solver = "gs"; blockedContactSolver2N = true; solveRegularizationFactor = 1.0; adHocSolver = false; cableMaxMassRation = 2.0; gravityStrength = 9.8; airSwitch = true; cableAdaptiveSlack = false; gravitySwitch = true; frequency = 100; blockedContactSolver2NF = false; cableMiliatryConstraint = false; solveConstant = 1e+008; useSkipLists = true; timeFactor = 1.0; mutipleContactEventPerPair = false; maxSpringStrength = 10.0; cables = true; cableDistanceConstraint = true; gravityAngleOffset = 0.0; solveConstCables = 1e+008; solverSOR = [1.0, 1.0, 1.0]; solveIter = 30; solveTcontacts = 0.05; solveStiffIter = 0; solveDistFactor = 1.0; solveRandomizeConstraints = true; bruteColliderCutoff = 0; solveTCables = 0.05; sortBroadPhasePairs = false; blockedContactSolver = false; cableLineSmartChoice = true; solveTconstraints = 0.05; solveVelFactor = 1.0; defaultBodyDensity = 2.0; cableJacobianScale = 1.0; airFrictionLinear = 0.01; maxPositionCorrection = +inf; warmStart = true; cableMaxSlack = 0.1; running = false; optimizeContactSet = true; airFrictionMultiplier = 1.0; targetPenetration = 0.0001; solveReverseConstraints = false; polygonMeshSize = [128, 128]; cableMaxImpFactor = +inf; defaultBodyFriction = 0.5; fastPolyAABB = true; nyquistFactor = 4.0; cableLineConstraint = true; springForce = 1000.0; warmStartFactor = 0.5; airDensity = 0.01; largeOverlapTest = true; solvePenetrationDamping = false; rotFrictionLinear = 0.00314; defaultBodyRestitution = 0.5; solveAccFactor = 1.0; cableSafetyDistance = 0; cableLineInternalize = false; forceContactCalculations = false }; sin = {math.sin}; WebCam -> { flipVert = false; flipHoriz = false }; Palette -> { drawCircleCakes = true; borders = true; waterColor = [0.675, 0.71833336, 1.0, 0.497]; colorRangesHSVA = [[[0.0, 0.0, 0.10516606, 1.0], [359.9, 0.0, 0.9268293, 1.0]]]; opaqueBorders = true; drawClouds = true; skyColor = [0.14, 0.14, 0.14, 1.0] }; Defaults -> {glueToWorld = false}; spawnPyramid = (n)=>{for(n, (i)=>{spawnBoxRow([(n - i) * 0.5, n - i], i)})}; App -> { fadeColor = [0.0, 0.0, 0.0]; updateInterval = 1; drawClipPlanes = false; alwaysCalcContacts = false; transformAttribs = true; killerPlanes = true; laserResolution = 10.0; scalePowControllerAcc = 1.0; waterMaxElongation = 2.0; maxBorderArea = 0.2; borderWidth = 0.1; waterColor = [0.1, 0.1, 1.0, 0.7]; waterRefractiveIndex = 1.33; sceneFadeInTime = 1.0; polytoolPreviewColor = [1.0, 0.5, 1.0, 0.4]; gpuWater = true; drawBCs = false; drawVertices = false; tracerOverdraw = false; maxPointDist = 0.5; drawScaleIndicator = true; maxUndo = 40; metaWater = true; minPointDist = 0.15; maxSPHSpawn = 2000; laserWidth = 0.2; laserFuzziness = 0.0; maxPlotPoints = 100000; maxBorderAreaSpecial = 0.4; drawOBBs = false; Grid -> { grid = false; base = 4; numAxes = 3; scale = 1.0; snap = true }; scalePowSpringDamping = 0.0; scalePowAttraction = 1.0; language = "English"; fadeTranslate = [0.0, 0.0]; iceColorMultiplier = [2.0, 2.0, 2.0, 1.0]; scalePowMotorSpeed = 0.0; waterTracerLightness = 0.75; GUI -> { geomGenMinArea = 0.0009; sketchMorphDelay = 0.5; ctrlSelection = true; toolGestureSensitivity = 1.0; toolGestures = true; drawTouches = false; selectFactor = 0.8; drawHingesWhenRunning = true; trapUser = false; Forces -> { normalText = "N"; totalText = ""; airFrictionText = "-fv"; attraction = true; gravityText = "mg"; airBuoyancyText = "-adg"; airFriction = true; airBuoyancy = true; total = false; attractionText = "A"; externalText = "ext"; friction = true; drawValues = false; drawNames = true; external = true; normal = true; velScale = 1.0; frictionText = "T"; springText = "-kx-bv"; forceScale = 0.1; drawForces = false; gravity = true; contactCombinationDistance = 1.2; spring = true; velocities = false; frictionProjection = true; hingeText = "H"; hinge = true }; fixedContextMenu = false; strippedInterface = false; infoUpdateInterval = 0.2; pressAndHoldMenus = false; level = 3; zoomFactor = 0.2; alikeTolerance = 0; drawDragLine = true; dragUndo = true; toolSpecificCursors = true; sketchMorphTime = 0.5; fastSketchToolPreview = false; fontMenuPreview = true; rotateBackground = false; useHSL = false; geomGenShrink = -0.0033; mouseOverHighlight = false; angleColor = [1.0, 0.25, 1.0, 0.5]; allowDrawSelect = true; geomGenTolerance = 1.2; panFactor = 2.0; Scene.addWidget { widgetID := "About"; minimized := true; pos := [554.0, 614.0]; size := [167.0, 32.0]; visible := false }; Scene.addWidget { widgetID := "Unlock"; minimized := true; pos := [1.0, 283.0]; size := [172.0, 32.0]; visible := false }; Scene.addWidget { widgetID := "Help"; minimized := true; pos := [679.0302, 99.47522]; size := [96.0, 32.0]; visible := false; contents := { SketchTutorial := { step := 0; accomplished := [] }; ToolsTutorial := { step := 23; accomplished := [true, false, false, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true] }; BeginnerTutorial := { step := 24; accomplished := [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, false, false, true] }; activeTutorial := "ToolsTutorial" } }; Scene.addWidget { widgetID := "Options"; minimized := true; pos := [579.251, 243.68898]; size := [118.0, 32.0]; visible := false; contents := {activeTab := 3} }; Scene.addWidget { widgetID := "Toolbar"; minimized := false; pos := [-20.680925, 39.0]; size := [632.0, 32.0]; horizontal := true; visible := true }; Scene.addWidget { widgetID := "EntityOptions"; minimized := true; pos := [860.0, 678.0]; size := [159.0, 32.0]; visible := false }; Scene.addWidget { widgetID := "SimControl"; minimized := false; pos := [43.0, 80.0]; size := [551.0, 46.0]; visible := true }; Scene.addWidget { widgetID := "SimInfo"; minimized := false; pos := [617.5, 329.0]; size := [188.0, 272.0]; visible := true }; Scene.addWidget { widgetID := "MenuBar"; minimized := false; pos := [1.0, 0.0]; size := [570.0, 30.0]; visible := true }; Scene.addWidget { widgetID := "File"; minimized := false; pos := [5.0, 38.0]; size := [163.0, 452.0]; visible := true } }; laserEvents = true; screenshotsWithAlpha = false; laserBroadPhase = true; Background -> { skyColor = [0.3, 0.4, 1.0, 1.0]; cuteClouds = true; drawClouds = false; cloudOpacity = 0.9 }; scalePowHingeImpulseBreakLimit = 3.0; scaleGravityField = false; fadeAnglePickerTime = 0.5; drawBodyCenters = false; drawCables = false; useLaserFuzzNoShaders = true; forceVertexPolygonDrawing = false; maxPolygonBorderFactor = 0.75; pointSize = 3.0; chainDensityFactor = 1.0; laserSuperBoost = 1.0; timeUntilRealTool = 0.1; dragToolStrength = 0.25; HQPolygons = false; drawParticleNeighbors = false; waterElongation = 0.05; fadeRotate = 0.0; drawSelectionOBB = false; drawVelocityFactor = 0.02; lineWidth = 3.0; drawParticleCenters = false; scalePowSpringStrength = 2.0; fadeScale = [0.95, 0.95]; enableScriptMenu = true; checkForUpdates = true; DPI = 86.0; scalePowMotorTorque = 4.0; waterTracers = 0; autosaveTime = 300.0; waterFanceyFactor = 10.0; metaCutoff = 0.5; currentPalette = "Greyscale"; numColorsInRainbow = 12; drawCollisions = false; drawMapOBBs = false; waterTracerSize = 0.015; showGravityField = false; tracerFuzziness = 0.0; maxCogs = 128; autosaveEnable = true; laserWaterBVH = false; marchingSquaresResolution = 1.0; maxTracerLife = 100000 }; exit = {System.exit}; Console -> { fade = false; screenSize = 0.35; commandHistory = []; delay = 0.3; scroll = true; color = [0.1, 0.1, 0.1, 0.8] }; Tablet -> { rightClickOverride = false; improveClickTolerance = true; overrideMouseEvents = true }; Resources -> { fontHint = 4; textures = true; fontMetrics = true; maxDesiredTextureSizeSide = 2048; fontFallbacks = ["Tahoma", "Arial Unicode MS", "Sans"]; force16BitTextures = false; fontAASubPixel = ""; shaders = true; fontAA = true }; cos = {math.cos}; makeRing = (r, n)=>{ list = []; for(n, (i)=>{ a = (2 * math.pi * i) / n; list = list ++ [r * [cos(a), sin(a)]] }); list }; groovyOn = { App.fadeColor = [0.8, 0, 0.9]; App.fadeTranslate = {[3 * sin(time), 2 * sin(time)]}; App.fadeRotate = {sin(System.time * 1.2)}; App.Background.skyColor = [0, 0, 0, 0] }; Scene -> { author = ""; title = "3D car blue"; description = ""; Camera -> { suspendFollowIfTooling = true; trackRotation = false; zoom = 39.170967; smoothRotation = true; smoothPan = true; smoothFactor = 0.9; rotation = 0.0; pan = [3.078041, 8.739105]; smoothZoom = true }; controllAccelerationFollowCamera = false; gravityRotationOffset = NaN }; time = [1, 0, 0, 0.47]; GUI -> { cursorFPSLimit = 25.0; Skin -> { borderExtrusionToolIcon = 0.0; font = "Comic Sans MS"; borderTooltip = "large"; sliderWidth = 256.0; largeIconSize = 32.0; borderLabel = ""; opacity = 0.95; borderExtrusionLabel = 0.0; borderExtrusionTooltip = 0.625; textureDirs = ["Contrast", "default"]; sliderHeight = 16.0; fontFixed = "Courier new"; borderSizeFactor = 1.0; borderExtrusionRest = 0.625; windowSnappedSpacing = 1.0; cuteClouds = true; borderExtrusionSlider = 0.625; fontShadow = false; bgColor = [0.9, 0.92, 1, 1]; borderWindowTitle = "title"; borderSlider = "large"; wobbleStiffness = 300.0; windowFriction = 1000.0; windowSnapDist = 16.0; borderRest = "small"; focusColor = [0.5, 0.5, 0.5, 1]; borderExtrusionWindowTitle = 0.5; fontShadowOffsetPx = [1.25, 1.25]; fontSize = 15.0; borderTextBox = "text"; borderExtrusionWindow = 0.5; smallIconSize = 16.0; wobbleFriction = 15.0; borderWindow = "large"; borderExtrusionButton = 0.625; windowMinVel = 20.0; borderButton = "small"; borderExtrusionTextBox = 0.5; fgColor = [0.1, 0.1, 0.1, 1]; borderToolIcon = "tool" }; throwMinTime = 0.01; tooltips = true; throwTime = 0.1; scale = 1.0; maxClickDistance = 4.0; cursor = true; rightToLeft = false; sliderLabelPrecisionOffset = 0.0; penInput = false; debugGUI = false; touchDistanceSlack = 3.0; touchTimeSlack = 1.5; forceOSCursor = true; tabletDistanceSlack = 2.0; throwMinSamples = 3; currentSkin = "Contrast"; maxDoubleClickTime = 0.3; lockGUI = true; tabletTimeSlack = 2.0; maxClickTime = 0.15; maxSloppyClickDistance = 50.0; maxDoubleClickDistance = 5.0; maxSloppyClickTime = 1.0 }; Tools -> { DragTool -> {hotkey = "d"}; GearTool -> { inside = false; hotkey = "g"; outside = true; thickness = 0.125; cogSize = 0.43 }; PlaneTool -> {hotkey = "a"}; SketchTool -> { enableSelectCircleMouse = false; hotkey = "k"; enableSelectCircleTouchScreen = true }; BoxTool -> {hotkey = "x"}; CutTool -> {hotkey = "t"}; ChainTool -> { linkDistance = 0.2; hotkey = "n" }; BoxSelect -> {hotkey = ""}; FixJointTool -> {hotkey = "f"}; MultitouchGeometryTool -> {hotkey = ""}; SpringTool -> { previewLength = true; hotkey = "s" }; ZoomTool -> {hotkey = ""}; CSGTool -> { scale = 1.0; hotkey = "" }; TextureTool -> {hotkey = "u"}; TracerTool -> {hotkey = "e"}; PanTool -> {hotkey = ""}; RotateTool -> {hotkey = ""}; MoveTool -> {hotkey = "m"}; LaserPenTool -> {hotkey = "l"}; CursorTracerTool -> {hotkey = ""}; CircleTool -> {hotkey = "c"}; BrushTool -> { clickDraw = false; hotkey = "b"; pressureSensitive = true; freezeDrawing = true; size = 1.01; autoGlue = false; eraser = false; planeGlue = false; overdraw = true; calligraphy = false }; MultitouchBackgroundTool -> { MaxTouchDistance = 1.0; hotkey = "" }; HingeTool -> {hotkey = "h"}; ScaleTool -> {hotkey = "r"}; CloneTool -> {hotkey = ""}; PolyTool -> {hotkey = "p"} }; Threading -> {numThreads = 1}; Input -> { touchScreenDetectionGoodCutoff = 30; touchScreenDetectionRelCutoff = 50; inputJitter = 3.0; spam = false; noMouseInput = false; touchScreenDetection = true }; quit = {System.exit}; groovyOff = { App.fadeColor = [0, 0, 0]; App.Background.skyColor = [0.45, 0.55, 1, 1] }; Keys -> { Keys.bind("f12", {System.screenshot}); Keys.bind("pause", { Sim.running = false; App.Step }) }; System -> { position = [-1234567, -1234567]; frame = true; minFPS = 10.0; resizable = true; maximized = true; maxFPS = 60.0; antiAlias = 1; stencilDepth = 8; regularScreenshots = 0; fakeFullscreen = true; depth = 32; vSync = false; fullscreen = false; zDepth = 24; resolution = [1366, 718] }; for = (n, what)=>{ n <= 0 ? false : { for(n - 1, what); what(n - 1) } }; FileInfo -> { author = ""; standardAuthor = "NITROMAN"; title = "3D car blue"; version = 12; description = "" }; spawnBoxRow = (offset, n)=>{for(n, (x)=>{Scene.addBox({pos = offset + [x, 0]})})}; spawnRing = {Scene.addPolygon({surfaces = [makeRing(1, 48), makeRing(0.5, 48)]})}; Bench_Steps = (n)=>{ t := System.time; Sim.Step_N(n); Console.print(n + " steps took " + (System.time - t) + " seconds.") }; print = {Console.print}