Project3: Glass Slump Sim by Zack J-W
I became interested in glass slumping when some friends became interested in architectural cast and slumped glass.
Slumping is the process of heating glass and letting gravity pull it into a mold. Friends are working on a mold with a reconfigurable floor which moves via servos. Imagine a tile floor where each tile could raise to it’s own height.
One drawback to the process is that certain configurations push the glass beyond it’s physical limit. Another is that to test a new configuration in the real world is expensive in electricity, glass, and time. So a computer simulation is advantageous. Software does exist to do this but it can prohibitively expensive. I wanted to try building a cheap program that begins to simulate the effects of slumping glass.
Workflow:
In the end, a real simulation software would be much more sophisticated but I think this proves the power of an extensible open source program to begin competing with the proprietary stuff that costs 10’s of thousands of dollars.
Pros:
- The sim allows you to control time. That’s something you can’t get in a 15000 degree kiln.
- The sim is interactive. While it is possible to manipulate glass in mid-process, it would be much easier in sim.
- Some details, like the stretching of the material are working well.
- It’s fun, and fast compared to the real world version which is largely trial and error and a lot of the time, a failure
Cons:
- I didn’t make the jump to 3d. I will have to.
- As of now, it isn’t modeled on the mathematics of glass as a phase change material, but, oh well.
Demo:
[youtube https://www.youtube.com/watch?v=grTGPsiGhtw]
Code:
/*Simulation project for Golan Levin's I.A.C.D 2012 copywrite 2012 Zack Jacobson-Weaver...Uses ToxicLibs extensively! Toxiclibs.org Reset the whole show Increase the "heat" of the environment: excess of 15,000 deg F threatens catastrophic failure! */ import toxi.physics2d.constraints.*; import toxi.physics2d.behaviors.*; import toxi.physics2d.*; import toxi.geom.*; List springs; VisibleRectConstraint [] rects = new VisibleRectConstraint[20] ; PFont font; // number of particles for string float STRING_RES = 80; // number particles for ball int BALL_RES=24; // ball size int BALL_RADIUS=60; // squared snap distance for mouse selection float SNAP_DIST = 20 * 20; VerletPhysics2D physics; VerletParticle2D selectedParticle; float stn,rl; int temp; void setup() { size(680,480); springs = new ArrayList (); temp = 0; initPhysics(); } void draw() { // 1st update physics.update(); // then drawing background(255); // draw all springs for (int i=0; i 0) { VerletParticle2D q=physics.particles.get(i-1); VerletSpring2D s=new VerletSpring2D(p,q,delta*0.8,0.8); physics.addSpring(s); springs.add(s); } } // lock 1st & last particles physics.particles.get(0).lock(); physics.particles.get(physics.particles.size()-1).lock(); for (int i =0; i < rects.length; i++){ Rect R = new Rect(i*width/rects.length,random(height/4, height), width/rects.length,width/rects.length/2); VisibleRectConstraint r = new VisibleRectConstraint(R); VerletPhysics2D.addConstraintToAll(r,physics.particles); rects[i] = r; } } |
class VisibleRectConstraint extends RectConstraint { public VisibleRectConstraint(Rect r) { super(r); } public void draw() { stroke(184); strokeWeight(2); noFill(); rect(rect.x, rect.y, rect.width, rect.height); } } |
————————–
I didn’t know a layer of glass could explode
the elevation would be nice in 3d, but other parts are pretty clear in 2d
Good that you clearly noted this is not based on actual math. But I think you should note your background as a shop manager and fabricator. Your personal experience with glass modeling and forming is something that should not go overlooked.
+agreed
Lots of learning going on here! Congrats! It would be worth talking to some chemistry/glass/physics experts to better model the real behavior of glass. For example, at some point the glass thread breaks because it gets too thin.
What if the background chnged color based on the temperature? or if there was at least some visual feedback other then a text temperature
In your blog post it would be helpful to see some actual photos or video of glass slumping. For context.
Nice project. Really fun to watch, really cool to learn about a new physical process.
————————-
I’m curious to see how your simulation matches up with the real world results, meaning if your simulation are very close or not even close at all to the end result. I guess that time will tell!
Would have loved to see this in 3D<
Comment by dan — 28 February 2012 @ 7:58 pm