You are on page 1of 7

Quantifying the Angular

Mechanics of Marmota Monax via


Classical JSon Object Rendering
By Phillip Steiner and Zoe Mitchell
High Tech High Point Loma

Abstract
Our program uses classic Json object rendering via Processing, an open source coding
language, to demonstrate the angular mechanics of any limb or body. Our example uses Marmota
Monax, or the common woodchuck, to illustrate our programs functionality and properties, though any
bone/muscle values can be imported to explore the versatility of the program.
Our program includes bone, muscle and force calculators with editable values which allows
users to personalize the program to their specific needs. The program was designed for testing
muscle strengths against resisting forces or vice versa. However, it can also be used for many other
things like simulating theoretical bone and muscle configurations and quick replications in work
environments.
Our program is useful to all fields of organic and non-organic mechanics, requiring linear
linkages controlled by contracting and expanding joints. It can be used to study the angular mechanics
of woodchucks chucking wood, the muscular strength, and limits of that strength, of any skeletal
organism or even just forces applied to non-organic bodies.

Summary of Project
Have you ever wondered how much wood could a woodchuck chuck if a woodchuck could chuck
wood? For centuries this riddle has twisted tongues throughout the world and left people wondering
could a woodchuck even chuck wood?. For our experiment we decided to answer this age old
quandary by determining the amount of wood (stating that we are measuring the size of one piece of
wood not how many multiple pieces it could throw) a woodchuck could chuck. We designed a program
that takes into account the weight and muscle strength of a given woodchuck as well as the density of
the wood, and applied it to show just how big of a piece of wood a woodchuck could chuck if a
woodchuck could chuck wood. Our program is interactive, showing a simple animation of the
woodchucks structure chucking the wood. The user can input certain variables about the woodchuck
via a text document, which could end up as an entirely different animal structure. The program then
illustrates exactly how the woodchuck would go about throwing wood and alert the user of just how
much wood his/her woodchuck would be capable of throwing based on the muscle values and bone
lengths, which also influence torque. Our project will add to the field because it will demonstrate how
people can go about researching various fields of animal locomotion, which is currently still
developing, and provide a useful and easily malleable program which could be used to calculate other
aspects on other animals.

Materials and Methods


We created a computer animation of how a woodchuck would chuck wood. We used the
computer program Processing to create the simulated calculator. Our program is made of different
classes which will talk to the main loop which includes a draw function. The program sends an object
request to each class which will send back a draw request. We also use systems such as JSon
objects (JavaScript Object Notation) which stores variables outside of the program. The Json function
goes in a separate file and relay the information back to the main loop. The force application system is
a calculator which will calculate forces applied according to net forces.

Program Outline Diagram

Sample Code
void draw() {

float[] muscelStrength = new float[muscels.size()];

background(0);

float[] muscelLength = new float[muscels.size()];

float[] bRots = new float[bones.size()+1];

float[] staticX = new float[statics.size()];

float[] bRotDelta = new float[bones.size()+1];

float[] staticY = new float[statics.size()];

float[] boneOneX = new float[bones.size()+1];

float[] weightValue = new float[weights.size()];

float[] boneOneY = new float[bones.size()+1];

float[] weightX = new float[weights.size()];

float[] boneTwoX = new float[bones.size()+1];

float[] weightY = new float[weights.size()];

float[] boneTwoY = new float[bones.size()+1];

float[] weightCon = new float[weights.size()];

float[] boneCOne = new float[bones.size()+1];

if (button == 0) {

boneTwoX[boCoter] = bones.get(boCoter).boneTransX();
boneTwoY[boCoter]
boneTransY();

bones.get(boCoter).

if (boneCOne[boCoter] >= 0) {
boneOneX[boCoter]
[boCoter]];

boneOneY[boCoter]

boneTwoX[(int)boneCOne

boneTwoY[(int)boneCOne

[boCoter]];
}
}
}

float[] boneCTwo = new float[bones.size()+1];

boneLength[0] = 200;

float[] boneLength = new float[bones.size()+1];

boneLength[1] = 100;

float[] jointLX = new float[joints.size()];

boneCOne[0] = -1;

float[] jointLY = new float[joints.size()];

boneOneX[0] = 500;

float[] jointCOne = new float[joints.size()];

boneOneY[0] = 500;

float[] jointCTwo = new float[joints.size()];

boneCOne[1] = 0;

float[] muscelCOne = new float[muscels.size()];

bRots[0] = mouseX*0.01;

float[] muscelCTwo = new float[muscels.size()];

bRots[1] = mouseY*0.01;

float[] muscelCOneX = new float[muscels.size()];

boneCOne = sort(boneCOne);

for(int
bCount -= 1) {

bCount

bones.size()-1;

bCount

>=

0;

Bone b = bones.get(bCount);
b.run(bRots[bCount],
[bCount], boneLength[bCount]);

boneOneX[bCount],

boneOneY

}
for(int jcount = joints.size()-1; jcount >= 0;
jcount -= 1) {
Joint j = joints.get(jcount);
j.run(jointLX[jcount], jointLY[jcount]);

float[] muscelCOneY = new float[muscels.size()];

for (int
boCoter += 1) {

boCoter

0;

boCoter

<=

bones.size()-1;
}

float[] muscelCTwoX = new float[muscels.size()];


println(boCoter);
float[] muscelCTwoY = new float[muscels.size()];

for(int mCount = muscels.size()-1; mCount >= 0;


mCount -= 1) {

Work Cited
1: "Predictability of Skeletal Muscle Tension from Architectural Determinations in Guinea Pig
Hindlimbs." National Center for Biotechnology Information. U.S. National Library of Medicine. Web. 4
Nov. 2014.
2: Bezuidenhout, A. J., and E. H. Evans. Anatomy of the woodchuck (Marmota monax). American
Museum of Natural History. Print.
3: Paskevich and Shea. The Ability of Woodchucks to Chuck Cellulose Fibers". Annals of Improbable
Research, 1995. Print
4: "Math Insight." Vectors in Two- and Three-dimensional Cartesian Coordinates -. Web. 5 Nov. 2014.
5: "ArrayList Language (API) Processing 2." ArrayList Language (API) Processing 2. Processing.org.
Web. 5 Nov. 2014.

You might also like