newton(6D)
newton - a physical modeling demo
Showing IRIX 6.5.7. Unchanged since IRIX 6.5.
NAME newton - a physical modeling demo SYNOPSIS newton [-f model_catalog] [-D] DESCRIPTION Newton is a real-time simulation of an elastic body. Command-line arguments will be discussed below, after a general explanation of the program. The body is made up of a number of atoms and springs. Atoms are points of mass for which the forces of gravity apply. Between some pairs of atoms, there are springs, which supply additional forces if their current length is different from their initial length. The specific spring equation used is not linear, but behaves close to linear in a narrow vicinity of the initial spring length. The main window of Newton shows a cubic room that contains the elastic model at its center. To drop the model, press and release the left mouse button. Between the time you press the left mouse button and the time you release it, you get a chance to reorient the model any way you want - just move the mouse around and the model will turn in that direction. Independently, you may wish to rotate the room. This can be achieved by pressing the middle mouse button and moving the mouse around. To stop reorienting the room, let go of the middle mouse button. Whenever you want to re-drop the model, hit the left mouse button. As before, you get a chance to reorient the model prior to dropping it (you drop it by releasing the left mouse button). MENUS As usual with the GL demo programs, the right mouse button is the menu button. Several menu selections are available: models There are a number of different models to select from, and a different shape can be selected via the model catalog menu. physics The simulation is controlled by several physical parameters, and they can all be changed by the user. For example, if the user wants to increase the gravity (essentially, make the model heavier), all she has to do is select ``gravity'' in the ``physics'' submenu, and a gravity slider will pop up. See the section on sliders below to find out what physical parameters are available, and how to use the sliders. model display The model can be displayed in several fashions: smooth surfaces Display the model as a single surface, using the lighting model to obscure the corners of the body; flat surfaces The normal display mode for most models. Every surface is lit independently; springs Display the internal connections between the ``atoms'' of the model; Bermuda This is a weird display mode using the color map, try it! NOTE: Only one of the above four is possible at any given time, so if you are tired of the Bermuda display mode, the way to return to a more normal display mode is to simply select flat surfaces, smooth surfaces, or springs from this submenu. toggle translucency The model can be made either opaque or transparent. Consecutive selections of this menu item toggle between these two possibilities. toggle surfaces+springs It is sometimes helpful to see both the surfaces and the springs of the model at the same time. If you have selected either flat or smooth surfaces, and you want to superimpose the springs, click this menu item. Clicking it again cancels the springs. This is particularly useful if the model is made transparent, using the previous menu item. room display This controls the way the room itself is drawn. Selections are either lighted walls w/ shadows, which means the walls are lit (just like the model itself,) and the model casts shadows on them; lighted walls w/o shadows, which is faster (since there are less polygons that need to be drawn); and pinball walls , which are non-lit walls, but rather walls that light up whenever the model hits them (the color represents the amount of displacement). spin mode on/off As with many GL demos, there is a mode in which things happen ``by themselves'' without user intervention. Turning spin mode on causes the room to continually follow the mouse, rotating in the mouse direction with a velocity proportional to the distance from the mouse position to the center of the screen (not the model window). exit Quit Newton. Other ways of quitting include hitting the ESCAPE key, and selecting quit from the menu bar. SLIDERS A slider is a means of changing the value of some physical parameter of the system. If the slider you need is not open already, you can open it from the physics menu, as explained above. A slider is essentially a window that shows the lowest, highest, and current values of the corresponding physical parameter: the precise values appear in the lower left, lower right, and lower middle of the slider window. A visual interpretation appears above the numbers as a rectangle that is partitioned into a green and yellow sections, which correspond to the portion of the range below and above the current value, respectively. Moving to any point within the graphic representation of the slider and clicking the left mouse button will make the value corresponding to that point become the current value of the slider. You can also slide the value by using the middle mouse button in a manner analogous to rotating the room (see above). The right mouse button brings up the slider menu, which enables you to reset the slider to its default value, or close the slider window altogether. Once closed, a slider window can be reopened from the physics menu. Available sliders are: Gravity The magnitude of the gravity vector. It always points down (in screen space). Spring Constant The spring constant of the stiffest spring in the model. Wall Stiffness The walls of the room are like trampolines, and that is why the model bounces off of them. This parameter controls the stiffness of those trampolines. The higher the value, the harder the walls kick back. The lower the value, the soggier the walls. The latter results in the model ``sinking'' into the walls. Wall Friction When the model hits a wall, it typically loses some energy due to wall friction. This parameter controls which fraction of the energy is lost. The higher the friction, the more energy gets lost. Note that with high friction the model often ``prefers'' ``jumping'' along a wall to ``sliding'' along it. Air Dampening This parameter controls how much energy the model loses simply by moving through the air that's inside the room. When this value is high, it is as if the model is surrounded by a viscos material (such as honey) rather than air. When this value is zero, the model experiences no air resistance whatsoever. Display Step If you think of what you see on the screen as a movie, this parameter controls which frames actually get drawn. When the display step is 5, for example, only every fifth frame (roughly) of the movie gets displayed. When the value is high, the animation is usually faster and jumpier. When the value is low, the movie is more smooth, but has a feeling of slow motion. COMMAND LINE ARGUMENTS The -D (demo-mode) option causes all the sliders to be opened (as well as the main window) in pre-defined positions on the screen. Specifiying ``-f model_catalog'' causes the program to use an alternative list of model shapes instead of the default ones. The serious user may experiment with new model shapes once she managed to decipher the obscure format of a model description file... A model catalog is a list of model description file names. If a name is not fully-qualified, it is considered relative to the directory containing the model catalog file. If the model_catalog is `-', it is taken to be the standard input. For example, to have Newton run on all the ``*.j'' files in the current working directory, you might use echo *.j | newton -f - HELPFUL HINTS There are many fun things to do with this program. However, remember that certain combinations of physical parameters may cause the model to break - very much as in real life. When the model breaks, there is no need for panic: simply hit the left mouse button and you get a fresh model that you can break again ... You can kick the model by tilting the room so the lowest point is a corner. Let the model come to a rest at that corner, and then rotate the room around a horizontal axis - simply drag the mouse either up or down rapidly with the middle mouse button pressed. The decision whether to go up or down depends on the position of the low corner: if it is more to the front (facing you) - go up, if it is facing away from you - go down. Kicking normally introduces gobs of energy into the system, and some models do not handle that very well. You may want to decrease wall stiffness or increase spring constant before kicking. Another fun thing is to see soggy walls: just push wall stiffness to a very low value, and then drop the model. This is particularly visible if you align the room so that the bottom wall is almost flat, but still faces you a little (if a wall faces away from you - it automatically becomes transparent) prior to dropping the model. When the model comes to a rest, you may kick up the wall stiffnes (select the default wall stiffness from the slider menu), and the model will soar to the sky as fast as gravity and the air dampening enable. Once you have mastered the user interface to this program, try to get the chain model to hang in free space by its two endpoints. In other words, get the room aligned so that there is an edge of the cube at the bottom, and the two walls incident on that edge form a V-shaped corner. Then drop the model. Wall friction and stiffness may help you overcome inacuracies in the room alignment. Once the model hangs there, you can gradually lower and raise the spring constant, lower and raise gravity, or kick the wall stiffness - all of which will show amusing effects on the chain. These are but a few of the possible experiments that can be carried out using this simulation. FILES /usr/demos/General_Demos/newton/data the default list of model shapes /usr/demos/General_Demos/newton/data/*.j model description files DIAGNOSITICS Self explanatory. Messages that appear on the terminal from which Newton was invoked indicate a problem Newton is experiencing in performing the simulation. Typically, this indicates an incorrect setup of either the Newton program or the catalog or description files. BUGS The bending of the walls is approximated by a crude pyramid. The sheet model particularly suffers from that, so you have to have relatively stiff walls to get a decent performance out of the sheet. AUTHOR Yossi Friedman, June-August 1988. The idea is derived from the original ``Jello'' by Thant Tessman.