It’s Just Story Telling …
One of Man’s most useful inventions …
Stories, often taken for granted, carry us through our lives, and practical knowledge through the generations, nurturing man’s in-built love of a good tale. Like rain on parched sand, they sink right in.
Some of the other ways we learn…
– “Not pointless,’ I protested. ‘It’s the questions we can’t answer that teach us the most. They teach us how to think. If you give a man an answer, all he gains is a little fact. But give him a question and he’ll look for his own answers.’ ” (quote from: A Wise Man’s Fear by Patrick Rothfuss)
– Play – not only fun, it’s engaging and deep reaching creative learning.
– Koans … Definition: “Zen koan” … a paradoxical anecdote or riddle, used in Zen Buddhism to demonstrate the inadequacy of logical reasoning and to provoke enlightenment. (definition from Google)
– “Coyote Mentoring” : “… a distinctive and highly effective educational approach developed by Jon Young and Wilderness Awareness School over the past 25 years … This approach develops the capacities of students for learning, problem solving, and full expression, and re-awakens their natural sense of wonder.”
The Computer … Makes it possible!
The complexity of this approach to illustrating the concepts, requires the use of a computer and appropriate software.
Complex? Consider just one thread the computer and software are managing when running an animated scene in blender: calculating the locations and movements of the points (vertices) that make up each object, with physics applied … For each frame in the clip!
The demands Blender makes of the computer include managing color, texture, sound, shading, light, and forces like gravity, wind, not to mention running the user interface, etc. Even with all possible corners cut, this is an astounding amount of work.
Fortunately, many off-the-shelf computers are capable of creating simple 3-D scenes. That’s good news; it means a maxed-out graphics-computer is not necessary at the beginning. If your machine will handle Blender, start with it!
What is required of the computer?
Cooling – an issue you must always consider … Your computer’s processor and memory will generate significant heat while doing this kind of graphics work, so monitor it carefully. If you see signs of overheating shut down Blender (but not the computer … it will still need to cool itself). There are after-market cooling systems available, some work well, and there are even water-cooling systems out there!
Processing power – at present, the apparent realism and the number of objects you can include in a scene are limited by the memory and processing power of the computer used, the skill and knowledge of the creator, and to a small degree by Blender’s physics system. Keep in mind that some computer configurations are significantly more graphics-capable than others, and with large numbers of objects (perhaps more than ~10,000) a computer built for graphics work makes simulating physics go much better and allows for greater detail.
Graphics capability – if you decide you want to move further with this work; (an example might be creating enough realistically sized sand objects with physics applied to register an entire track) then you will need to have, or gain access to an appropriate computer … the more graphics-capable the better … processor and type of graphics card does really matter … get LOTS of memory … and a bit more!
Backup and storage … As you get into this work you’ll be creating lots of large files, some will be worth preserving. You might want to keep only the most used or current Blender files on your PC’s hard drive and the rest and best somewhere else safe, like an external drive or on the Cloud. Yes, you can get massive internal hard drives … And then your operating system has to keep that big drive organized, another demand on your system. Computers can be replaced, and, yes, data recovered from internal drives, but’s much, much easier, and cheaper to unplug that external drive and just plug it into the new computer! Really, why not? After all the work and problem solving that went into those files?
Searching/networking for information about the best computer type and configuration (this is worth devoting time to):
If you think you’ll continue doing this work, investigate, network, and search out what kind and configuration of computer you need … get the best you can afford, or build your own. Having some idea of the complexity of scenes you might create may be useful at this point.
Blender.org / “About” / “Software” /click on “supported platforms” (it’s in one of the paragraphs) … Or just Google “blender 3D supported platforms”, or something like “Blender 3D best computer”.
Join BlenderArtists.org and ask..
There are companies that offer computers built with Blender and other graphics software in mind. Some offer quality, some do a good job of standing behind their products, choose slowly.
The job the software has to accomplish is to use real-world physics with three-dimensional graphical objects to simulate actual physical objects and processes. Blender 3D was chosen as the initial software because it is built to do that.
Blender is open source software and free … A capable and powerful 3D modeling platform … Well supported. Improved and updated regularly, it has a world-wide community of supportive users and thousands of free on-line learning tutorials. Pretty amazing actually
Blender began as the in-house tool set of the Dutch animation studio NeoGeo. In 1995 it was decided to begin re-writing the software from scratch to create a “free creation tool for interactive 3D (on-line) content”. Emphasis includes accuracy, and precision in terms of how it simulates physics. (Source: https://www.blender.org/foundation/history/)
Blender has two rendering engines, the new “Eevee” and “Cycles”. Cycles is a ray-tracer, it produces physically accurate renderings by calculating paths of light rays. Eevee is real-time, meaning you can see what you’ll get as you work. The trade off for this real-time capability is that Eevee approximates shadows. So one best use is Eevee for development and Cycles for final rendering.
The primary simulation systems offered by Blender are: Cloth, Fluids, Particles, Rigid Body, Smoke, and Soft Body, and “Force Fields”; wind, etc..
It is suggested that other 3D modeling applications be explored to decide whether one may be more useful for this work. Not that there is anything wrong with Blender, it’s wonderful! It’s just that, like most technology, software evolves and sometimes a different platform evolves to where it does certain things better.
Useful software features to look for:
Can it simulate physics at all? Using which physics simulation system? (Blender uses “Bullet Physics Engine”)
What are the upper and lower limits of the number of physics-enabled objects the software can manage? Will it handle 50,000 Rigid Body objects? A million?
Can it simulate soil or clay interacting with other solid objects?
All software has “issues”, is the software forthcoming about what they are? “Forthcoming” is a good sign.
A sand grain weighs a lot less, and is significantly smaller than a foot … how well does the software’s physics engine do with large differences in mass and size?
Can it simulate the “real pieces” of something? For example, when a walking track is created?
“Real pieces”? When you walk doesn’t it feel like your foot lands, rolls forward and then pushes down against the ground, and then the body rises as the step progresses? Is that really because your foot is pushing down? No, at least not at a simple forward walk. A lot of small events and interactions do occur though, and to simulate them you identify the distinct causes and changes, the “real pieces”. Those are what actually needs to be simulated.
For example; during that simple forward step … a couple of real pieces: objects have well-defined shapes, gravity is an ever-present force. Another is that the feet are in contact with the soil surface at some point. And some more are that the body moves forwards because it is exerting force to pivot the foot around the ankle, the friction of the foot surface and the friction of the soil surface are keeping the foot from slipping, and that force used to pivot the foot around the ankle is then moving the body forwards.
Isn’t there a downwards push by the foot? Yes, but … When does that happen? Another real piece is that it only happens when you are trying to move the body higher; to perform actions like standing on tip-toe, skipping, ascending steps, or jumping. When simply maintaining forward motion, what feels like you are lifting the body is just weight transfer into different parts of the foot surface (two more real pieces), and yes, the body rises (another real piece), but that’s the mechanics of the body reacting to, and being moved by the force you exert, so that’s another real piece. (Ever take a step on ice and have your foot suddenly slip backwards really fast and hard, just like a spinning tire? That’s when you can feel how much force your body is exerting to pivot the foot).
Confused? It takes some thought to break something like this down into what’s really going on. Want to practice? From the perspective of where the tire meets the road, figure out the real pieces of how the engine moves a vehicle forwards when not coasting.
So the thing to ask is can the software simulate some or enough of those real pieces? For example; when a step is under way, the foot is being rotated rearwards while the weight of the body is resting on the foot surface. The friction of the foot surface, and of the sand will keep the foot in place. With the foot un-moving, any other thing that can move will, to release that force, and what moves is the body. Does the software have a way to simulate all those real pieces?
Updates for the software …
Blender is revised and updated at least once a year (author using ver 3.79). Some users prefer certain versions for specific purposes. When a new version of Blender becomes available, it is useful to visit the Blender website and read the “What’s New” info. Occasionally it helps to use an older version and you can keep older versions installed.
“Detail” – It makes the computer work harder, so how much is needed?
Trackers tend to notice the slightest change in shading the eyes can detect, a hair and the line it made as it fell into soft dust; or a slight ridge, no taller than the cross-section of the hair that fell beside it. An ant walked across newly exposed mud … See those disturbances left by it’s forelegs?
Use as much detail as required to carry a point across and provide validity, and minimize it where you can.
“Realism” & “Accuracy” – both can add to the computer’s load.
Realistic appearance … is necessary, sometimes, and certainly wonderful. Realistic appearance in these simulations may help, but isn’t always needed to get a point across. Efficiency sometimes comes with accomplishing the goal the simplest way.
Accuracy in behavior … this matters
In Blender the behavior of objects can be controlled in several ways:
– Blender’s animation system can control the movement of any object, a foot for example.
– Blender’s Rigid Body physics system can control the behaviours of objects before, during, and after collisions, as in the creation of a track.
– The various force fields built into Blender.
Rigid Body physics does simulate collisions fairly accurately. Accuracy of animation and appearance are largely up to the creator. Blender seems to be headed towards an accuracy of appearance distinguishable from reality only because it’s on a computer monitor.
Learning Blender 3D
Yup, same picture, it’s a fair representation of the complexity of the controls in Blender. And that is only wall one of four! But, no worries, you’ll usually need only a small subset.
Beginning steps you might explore:
A well-thought out and structured class is always a good beginning, but not the only way. Tutorials abound on the internet, you can use a search engine to find them. They will save hours and weeks of learning time! If a Blender tutorial used a relatively recent version of Blender, most settings and methods should work just fine. A well done set of beginner tutorials though a bit out-dated: Blender 3D Tutorials by Neal Hirsig.
Get help when you need it … especially while still learning the software. Solving problems on your own is great, but with complex applications like graphics software you’ll likely frustrate yourself less.
Play with it … What sounds interesting and fun to create?
Break problems down to bite-size chunks.
As a bench mark: the author had many years work experience illustrating scientific papers for PhD theses and publication in journals, very little training in 3D graphics or simulation, and none in Blender. From a cold start it took about a month to learn enough to produce simple video clips … And about 6 months to learn enough to create the first sign of a successful track…
Useful tip: “Workflow” – creating objects, assigning colors and textures, setting up rigid body physics can require a series of steps. Doing the right steps first can be the difference between something working, or not. So if you try something and it just won’t work, you can Google it with “workflow”, for example, “Blender 3D workflow” brings up some useful ideas.
Another useful tip: When using Blender it sometimes happens that something you are working on doesn’t behave as you expect. It’s tempting to assume this a bug … but usually this is just operator error because Blender is so complex. You most likely are not the first to hit this particular wall … A search with Google or within the Blender community can work wonders.
If you think you have found a genuine bug and have unsuccessfully searched for a solution, the Blender developers are quick to listen and resolve, so report it and include a copy of your “.blend” file reduced to the absolute minimum that reproduces the problem.
Help w/ Blender …
Plan Before You Illustrate …
Timing, length of clips, and slow motion … these are worth planning!
In slow motion a foot stepping and the track forming, or degrading, are much easier to observe … And can have a certain elegance.
Roughly how many seconds do you want the scene to play?
Blender does animation using sequential frames (think picture) where movement is captured as one tiny bit of change per frame.
24 frames per second (fps) is the minimum recommended frame rate, though you can choose your own. At that rate a pleasantly paced slow-motion footstep takes something like 400 frames (400 images). 400 frames /24 fps = 16.7 seconds. This includes a few seconds for comprehension before the track forms, and after the foot leaves.
How slow the motion is … that’s a matter of taste. Once you’ve created your animation try a few different renders using various lengths of time to see which you like best. One of the ways to do this is to play with changing the time used by going to the “Properties Editor” panel, look down to “Scene … Dimensions”, then change the values in “Time Re-mapping”, and render again.
Scale of objects and stability of the simulation: Stability problems in Blender can have more than one cause: rigid body objects of extremly small size, or drastically different mass, for example. The settings used for the rigid body physics simulation (steps per second, and iterations) must be used carefully as well. Object size is discussed briefly in the Blender 3D online manual. “It is best to avoid small objects, as they are currently unstable. Ideally, objects should be at least 20 cm in diameter.” (Source: https://docs.blender.org/manual/en/dev/physics/rigid_body/tips.html)
Specifically how bad is that particular problem and when does it occur? The author has mostly encountered rigid body objects passing through one another when they should collide. You’d have to ask the developers for accurate details, and I’m sure they know and would share. In most clips on this site the author has safe-guarded by scaling everything up so the smallest objects are larger than 20 cm in their smallest dimension, however some of the rigid body scenes do include a few smaller objects. Though there can be other causes, one sign of the problem can be when rigid body objects pass through other rigid body objects that should have stopped them.
Sand grains are very small compared to a human … so with such a mix of tiny and large, how to work around the scale problem mentioned above? The solution is simple. Because everything in a Blender scene is in a virtual world, it can be almost any scale you want including actual size, and as long as they are all scaled to the same degree, one cannot perceive that a sand grain is a thousand times larger than actual size. So if you scale up all objects in the simulation till they are larger than the 20 cm limit, that stability problem is solved. Hint: do this before any animation is added.
The clip below demonstrates real-world scale (everything but the sand) compared to the larger scale (the sand) used for all objects in clips on this site. The largest of these sand grains are 22.2 x 20 x 21.9 cm. Varied sizes of sand grains are included here so their behavior can be observed. Gravity was tweaked a little …
Making Stuff Move …
What is a step?
Relying, foot lands …
Trustworthy, earth embraces …
Details, left behind…
So you’re about to build a foot meant to take a step. How are you planning to make that happen?
Animation is a complex subject … So is a step. Discussion of animation is limited to the use of Blender 3D for this project and intended only as a brief overview to offer insights to those unfamiliar with 3D modeling, animation, and Blender.
A step in Blender requires ‘key framing’ the movements of some object.
‘key’ – adjective: “of paramount or crucial importance” (Source : Google definitions)
‘frame’ – think of a drawing of that foot at one instant in time during a step
The key frames…
This is a good description:
“A frame is a snapshot of the scene at one moment in time. An animation consists of displaying a succession of frames representing successive moments in time; if these are shown sufficiently quickly (at least 24 frames per second), the eye is fooled into seeing smooth movement, instead of a succession of still poses.
Computer animation works in a similar way, except here Blender is your lower-paid assistant. You go to crucial points in the timeline of your animation, position and pose your objects/characters appropriately, and tell Blender that this is a key frame for the relevant transformations (positioning/rotation/scaling) of those objects/characters. Then when you run the animation, Blender will interpolate the specified transformation parameters between key frames, giving you smooth motion over those intervals.”
– Description is from: https://en.m.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Basic_Animation
There are at least three ways to make animated things move …
Key framing the movements of armatures (bones) with mesh objects (skin) attached.
Key framing the movements of mesh objects manually.
Physics combined with gravity –
Blender uses a physics engine that provides collision detection, and simulates soft, and rigid body dynamics.
Forces – wind, magnetism, etc.
Making The Foot Move …
A Solution: Use an armature with a mesh foot object attached
To simulate a foot taking a step in Blender, one may begin by constructing and animating an armature (bones) that has a mesh foot object (the skin) parented to it.
“parented” … in 3-D graphics a seed, parented to its watermelon, stays in the same position within the watermelon, even as they roll down the hill, at least until the rock.
This arrangement allows Blender to control the surface of the attached mesh foot so that it moves with the armature (bones) in a way that is visually similar to how the skin moves when connected to muscles, tendons, and bones.
And here is a foot, animated by an armature and set as a Rigid Body object. The foot was made to look like the mesh it really is just for this explanation.
Collisions … Foot meets sand
Discussion about collisions will be kept simple. Essentially they are, sorta like this: You make a choice … Your foot bangs against the world … The world responds … Other stuff happens.
Why this an essential concept …
Tracks are the results of collisions between foot surface and substrate (sand here). So a simple version of simulating tracks on the computer is just simulating collisions. Even though Blender does most of the work of managing collisions, a little understanding will save you time and help achieve better results.
What are collisions?
“… Physics; the meeting of particles or of bodies in which each exerts a force upon the other, causing the exchange of energy or momentum.” (Source: http://www.dictionary.com)
An example; one part of walking is maintaining forward momentum. When we walk we’re expending energy to push against the ground, and this gives us forward momentum. To accomplish this we make our foot intentionally collide with the earth in a controlled manner. This begins the track, and initiates a series of collisions that happen between the skin, sand particles, and among the neighboring sand particles.
How does one simulate a collision on a computer? …
Collision Boundaries. You assign a boundary to each object that you will want to collide. Imagine two dots, each surrounded by a circle, or sphere. As far as Blender is concerned the collision between the two dots happens when they move and their enclosing outer shapes touch. Boundary-based collisions are one way Blender and the computer decide when objects touch.
And here’s collision boundaries at work…
Which of those objects would you use to produce the most realistic sand behavior? The dark green ones, with their tight collision boundaries maybe? Because they will give the most precise collisions and look the most natural?
Why not leave out the extra complication of a boundary and just say the collision happens when the two objects themselves touch?
Think about the letter “M” and a period “.” … How would you tell the computer when the “.” touches the “M”? Which do you think might be easier to figure out collisions on? How do you tell the computer where they are in a way that works for both different shapes? Is their location at their center? The upper left corner?
What if you enclosed each one in a sphere and told the computer they touch when the spheres touch? It turns out that, for imprecise uses, it works well enough to say they touch when simple enclosing outer boundaries intersect (the Collision Boundary) and use their geometric centers as the location of the objects.
For precision in this work the sand objects need collision boundaries shaped pretty much exactly like each sand object (look closely at the green sand objects), the foot needs one that is nearly identical to any part of its surface contacting the sand objects, and the ground needs one matching its upper surface.
In Blender the Rigid Body system the “Convex Hull” or “Mesh” collision boundaries offer the most precise control of collisions.
What goes on when a collision is happening?
Nature is always applying the rules of physics to everything. To the colliding objects as the collision occurs, and to every collision that follows. We’re doing the same thing on the computer.
A simpler version? Gravity is always on, and when one object collides with another energy is transferred, colliding billiard balls are a good example
Is it really that simple?
For dry-ish sand, ‘Yes’ with complications. In other cases, ‘No’. An example of ‘no’ are the more complex collisions of wet sand … What holds a sand castle together?
“… Cohering or tending to cohere; well-integrated; unified: a cohesive organization.”
“… Physics: of or relating to the molecular force within a body or substance acting to unite its parts.” (Source: http://www.dictionary.com)
When simulating a foot making a track, there are three essential components, the foot, the substrate, the ground beneath the substrate, and physics (Sorry, that’s four … too much Monty Python?).
Topsoil is one of the most common substrates and comes in many compositions. Sand was chosen as the first substrate to use for this project because it’s a good place to read tracks, can be simulated more easily than something like clay soil, and the Rigid Body simulation does a good job … with one exception, cohesiveness.
Clear examples of cohesiveness are observed in damp sand (grab a handful, squeeze and then open your hand), the disc formed by the toe of a shoe, and a plate formed at the edge of the track wall by pressure against the wall, or by the ball of the foot.
Cohesiveness of sand is primarily the result of the surface tension of the water coating the surfaces of two or more sand grains and connecting them. Some aspects of sand behavior can be simulated to a degree by adjusting the friction and damping settings applied in Blender to the sand objects, but not cohesiveness.
To simulate cohesiveness the simulation system must address this connectivity between soil and/or sand particles in some way. The author explored Blender’s other simulation systems to accomplish this and then tried a Blender add-on for Blender’s Particle System. That add-on, the Molecular Script (by Jean-Francois Gallant), directly addresses the cohesiveness issue, is very well done and was recently updated. It requires a more talented computer than the author currently has access to.
One other way to address this problem … different software. Houdini by SideFX was explored by contacting the developers and explaining the problem. They indicated Houdini will handle this issue. Unfortunately, after installation, the computer presently used took a bite of Houdini, and said, “That ain’t gonna happen …!” Ended that discussion.
This cohesiveness problem is mostly about computer processing power, and solving programming issues. It has been addressed and resolved, so it’s just a matter of finding the right software. Furthermore, given the rate of change in computer software and hardware, it is likely that other solutions already exist and just need to be discovered, so this issue is no permanent barrier.
Testing the Substrate … Sand
The idea: Test various Blender Rigid Body settings and simulation systems with sand objects to find the settings that hold a track the way you are trying to simulate.
This particular example is aimed at creating some aspects of damp sand behavior. One indicator of success will be when the ‘sand’ holds the track wall after the ‘foot’ leaves.
Sand is like the weather: its behavior is constantly changing and moisture content has a lot to do with that. In the morning a clump of squeezed wet sand holds its shape while resting on your palm, and if you had the patience and stamina to hold that position till it dried out, the dry sand would eventually trickle through your fingers.
The clip above was set up so the camera angle included the track wall of 5 various sand samples, each with a different physics setting.
One thing to notice: in the first part of the clip as the sand objects flow outwards before the ‘foot’ has stepped, the bottom-most group of sand objects is behaving much like dry sand.
After the ‘feet’ have lifted away, the top group of sand objects is reacting much like wet sand, in that it is holding the track wall.
The behavior of substrate objects is critical for these simulations to work accurately, be believable, or convey the correct information. Moisture content, surface tension and cohesiveness are important contributors to substrate behavior… and track formation
Watch your own work … Does it convince you?