Minimum Constraint Design
by Lawrence Kamm
MinCD, as opposed to RedCD (Redundant Constraint Design), or, meeting in the middle, semi-MinCD. This is a pretty entertaining piece with plenty of food for thought.
“The essence of minimum constraint design is not in limiting the number of constraints to the minimum number required for a rigid body but rather in eliminating overconstraints.” (p. 34)
“Any position or uniform motion of any rigid body can be resolved into exactly six component axes, three linear and three rotary.” (p. 8): Linear in the X, Y and Z axes, and then rotary about those axes, best described as “pitch” (front-to-back rotation), “roll” (side-to-side) and “yaw” (around the vertical axis, or ability to hold a straight course). The six components are “degrees of freedom”, and anything that limits a freedom is a “constraint”.
His tripod example for attaching two parts in 2.1 is ingenious, and it is a solution he returns to in many designs: one leg, resting in a conical hole, constrains the object to a fixed point in space about which it may rotate, the second leg, resting in a v-groove, halts this rotation, and the third leg, resting on the top of the lower part prevents vertical rotation. Without the seating force of the spring it could be easily overturned in the opposite direction. “Among the examples of seating forces are gravity, centrifugal force, fastener force, air or hydraulic pressure, and magnetic or electro-magnetic force.”
He goes onto some real-world examples, and my favorite has to be the comparison between the Danish and English three-legged chairs, where the Danish example is much more stable with the pair of legs at the back balanced by the sitter’s legs at the front. The English example takes no advantage of the “human servomechanism”, and can easily “tip over sideways when leaning back” (p. 20). Props to the Danes, inventors of Lego.
His concluding considerations for MinCD design with flexible bodies carry these principles into larger more complex systems, and his discussion of the “whiffletree” is very entertaining. It takes the distribution of a point load to the next logical level: linked point loads are like a spread footing in compression, but have the advantage that they can work in tension as well. In inverted compression they make an elegant diagram of the forces contained within a classical architectural capital.
Lego Lab!
Patricia and I built three of the simple machines out of the Lego kits. Parts have been cannibalized over the years, but with two kits, we easily assembled the merry-go-round, crane and windshield wipers. We’ll bring the last to class. Here’s a short film of the three in action:
Lego Simple Machines from Patricia Adler on Vimeo.
Okay, that was fun! You can call me out on the direction my finger was pointing a couple of times when I was describing rotation translation between a worm gear and a normal gear–the point is, it translates the axis of rotation 90 degrees, and offsets it by the radius of the two gears.
Simple Rules
Greg Borenstein and I came up with a simple set of rules to produce a short musical piece without instruments, involving only stomping, clapping and some vocals. The standing and sitting was introduced to create the impression of an engine. The rules were, unfortunately, not simple enough, so everyone had a hard time following along as you can see in the video. It was fun though.
Instructions for Indoor Music If you are sitting closest to the door begin stomping your feet in an even pulse. If you are the person closest to a corner clap on every stomp. If the person next to you is in the corner clap on every other stomp. If you are more than two people away from any corner say "ah" on every third stomp. If you are exactly two people from a corner radically change the height of your head on every seventh stomp. If you notice a stomp, clap, and "ah" happen simultaneously say "oh" on the next stomp. If you hear "oh" three times stop everything.
Rube Goldberg Egg-o-Matic
Do you despair of attaining Audrey Hepburn’s perfect flick of the wrist? Do your guests complain of shell in their scramble? Well, no more, for now every kitchen can have the Egg-o-Matic!
It fits conveniently inside your stove hood. Set the fuse, pull the lever, and down comes a perfect pre-scrambled yolk and egg, right into the frying pan. No muss, no fuss.
For Mechanisms, we were asked to build an egg-cracking machine:
- “Your machine should be loaded with an egg. It should be reasonably quick to reload your machine with a new egg between runs (no disassembly of the machine). Acceptable triggers to start the machine include (for example) a button press, pulling/pushing a lever, or yanking a string. Your machine should consist of at least 5 energy transfers (steps). After the initial start no human intervention is allowed. You may use any materials you can find/make/buy. Each step should be unique and contribute to the goal. Basically this means you can’t, for example, have some rolling ball hit 5 pins on its way down a ramp and have those actions count as steps (lame). The majority of the egg and NO MORE than 1/2 of the shell can end up in the final receptacle to get full credit.
- You will get 2 attempts. Your machine can take no longer than 5 minutes to complete the task from the time you initiate movement.”
There Will Be Yolk: A Rube Goldberg Machine from Greg Borenstein on Vimeo.
Serial Port Issues 4: XBee’s and Serial
To close the last chapter:
1. Regarding programming the Arduino via XBee, as Tom Igoe has noted, it is not as simple as a USB upload: the Arduino and XBee data rates are different, and the Arduino needs to be reset. Zach Taylor mentioned that rather than hitting the reset button, one can pass the DTR line from a USB-to-serial board through one of the XBee’s digital pins to the reset pin. We’ll be exploring this further in Rob Faludi’s Sociable Objects class this Spring.
2. Different hardware does require remapping, and reference voltages all need to be verified and set.
3. There was a cold solder joint at one of the accelerometer pins that was at least one of the major causes for the serial/Java hangs described in earlier posts. The most likely explanation is that at the rate Processing was trying to assemble arrays, any dropped data would cause it to freeze since I also did not have any error-checking in the code. Fixing the joint and adding this code (provided by Dan Shiffman) eliminated all hangs:
String input = port.readStringUntil('*');
if (input != null) {
println("Receiving: " + input);
int[] vals = int(splitTokens(input,"\t*"));
// Make sure your array has 3 elements!
if (vals.length > 2) {
r=vals[0];
g=vals[1];
b=vals[2];
}
}
Gel Combs
After running a PCR, the next step is to run a Gel electrophoresis to separate and analyze the DNA sequences.
Gel combs are located in a gel rig to create wells for placement of the amplified DNA, and an agarose gel is poured into it:
The gel is allowed to cure briefly, and then the amplified DNA is introduced with a pipette:
A current is then introduced:
The proteins in the DNA move toward the cathode or anode depending on their charge, and at different rates depending on their molecular weight. They thus separate and can be analyzed spectroscopically:
Here is the simple camera rig and light box they use to photograph the gels:
And a digital image of the gel:
Close-up:
A Problem
The Anthropology Department runs thousands of these gels, and each well needs to be filled with the amplified DNA individually with a pipette. To speed the process, they purchased an 8-tip pipette, but they currently only own gel combs with 10 or more tines:
Solution
8-tine combs are available, but at nearly $60 apiece are a hardship for a small lab. We ventured that we could have them made at the Advanced Media Studio at a fraction of the price. AMS was very cooperative, and the process was quite simple:
1. We drew up an 8-tine comb with Vectorworks (any dimensionally accurate drawing program will do), exported it as an illustrator file, and brought it to AMS:
2. They cut four samples on the laser cutter:
Improvements:
Christina had the final combs cut out of black plastic instead of clear so that they would show up more easily on the lab benches. She also added a tab to give it greater thickness at the upper end, making it easier to hold.
Quincunx
In this exercise, we demonstrate the difference between a random and normal distribution.
Normal Distribution
A Quincunx is a device designed to demonstrate a normal distribution. The bean machine, Galton Box, Pachinko and Plinko are all common examples: a ball drops down, bouncing off a series of offset pegs, forced right or left. If enough balls are allowed to drop, they will mostly tend toward the center, where the ball began, but some will fall to the left and right, and a few to the extremes. This normal distribution, or normal curve, is determined by the combination of independent samples and additive outcomes.
As an alternative illustration, I demonstrate here what it means to be short, of average build, or tall. The human frame is composed of a combination of elements–simplified here as lower and upper leg joints, torso and head–all of which have short, average and long dimensions:
You have an even chance of getting any one of these elements in any dimension within this range, but the cumulative probability of getting all of them at one end of a distribution at once is fairly small. The law of large numbers predicts a majority with an average height, with some being all short, and others all tall:
There is a slight bias to the left here due to the fact that I rounded to the nearest inch. Here’s the Processing sketch:
http://itp.nyu.edu/~mif226/crafting_with_data/Quincunx/
Random Distribution
As a point of comparison, the following is an illustration of a completely random distribution. The ball is dropped from a location chosen at random (with Processing’s random() function) across the width of the frame. It has an even chance of being dropped from any x-coordinate –each sample is independent– but there is no additive function joining the outcomes, so there is no bias to the distribution:
And in Processing:
http://itp.nyu.edu/~mif226/crafting_with_data/random/
Larry
To further our understanding of the darker arts of Processing, Arturo and I would like to plod on with Larry:
We plan to refine his motion as well as introduce a jump and background variation, both triggered by an external input. We also plan to introduce a second character–an animal or monster–to motivate Larry’s run. Rather than animate the second character in the same mode, we thought it might be more instructive to bring in an image and map it to move. Here’s the first pass:
Upon reflection, though, we started thinking it might be more interesting and keeping with the theme to actually bring in Muybridge’s sequential animal photos and animate them. Each could be triggered by different inputs or conditions within the frame:
Finally, the idea occurred to us of introducing some sort of dialogue between them. For example, Larry could turn his head and hurl insults over his shoulder as he is being chased:
Here is a random Shakespearean insult generator beta sketch for this:
http://itp.nyu.edu/~mif226/icm/final/text1/
And here is the html for that:
Comments (1)































































