home *** CD-ROM | disk | FTP | other *** search
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- xspringies - a mass and spring simulation system for X
- windows
-
- SSSSYYYYNNNNTTTTAAAAXXXX
- xxxxsssspppprrrriiiinnnnggggiiiieeeessss [ _o_p_t_i_o_n_s ]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- xxxxsssspppprrrriiiinnnnggggiiiieeeessss is a simulator which allows you to interactively
- create and edit a system of masses and springs. The
- parameters of the masses and springs (such as mass
- elasticity and spring K) as well as those of the surrounding
- system (such as air viscosity and gravity) can be changed.
- These systems can be loaded and saved into a file.
-
- I guess you could use xxxxsssspppprrrriiiinnnnggggiiiieeeessss for real work, but it's
- really intended to be a time waster.
-
- OOOOPPPPTTTTIIIIOOOONNNNSSSS
- -bg _c_o_l_o_r
- Specifies the color of the window background. The
- default is black.
-
- -d _d_i_s_p_n_a_m_e
- Specifies the display screen on which xxxxsssspppprrrriiiinnnnggggiiiieeeessss
- displays its window. If the display option is not
- specified, xxxxsssspppprrrriiiinnnnggggiiiieeeessss uses the display screen specified
- by your DISPLAY environment variable.
-
- -display _d_i_s_p_n_a_m_e
- This option is the same as the ----dddd option.
-
- -fg _c_o_l_o_r
- Specifies the foreground color of the window. The
- default is white.
-
- -geometry _g_e_o_m
- Specifies the width, height, and location of the
- xxxxsssspppprrrriiiinnnnggggiiiieeeessss window. If the geometry option is not
- specified, xxxxsssspppprrrriiiinnnnggggiiiieeeessss uses default values. The
- geometry option has the format
- [=][_w_i_d_t_hx_h_e_i_g_h_t][+/-_x_o_f_f_s_e_t+/-_y_o_f_f_s_e_t].
-
- -nbb This option turns off the bounding-box optimization.
- To produce smooth animation, xxxxsssspppprrrriiiinnnnggggiiiieeeessss redraws the
- smallest screen region which contains all objects. For
- smaller objects, the performance improvement is very
- noticible -- this is the bounding-box optimization. By
- disabling it with this option, xxxxsssspppprrrriiiinnnnggggiiiieeeessss redraws the
- entire display window. On slower machines or larger
- window sizes, this can produce slow results. The main
- reason for using this option is if the bounding-box
-
-
-
- Page 1 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- changes size rapidly, causing uneven animation.
-
- -hl _c_o_l_o_r
- Specifies the color of the button and selection
- highlights in the window. This defaults to the
- foreground color, or to green on color displays.
-
- -rv Specifies that the foreground and background colors be
- reversed.
-
- -st _t_h_i_c_k_n_e_s_s
- Specifies the thickness of the springs in pixels (0 is
- the default value)
-
- SSSSUUUUMMMMMMMMAAAARRRRYYYY OOOOFFFF OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN
- The left side of the xxxxsssspppprrrriiiinnnnggggiiiieeeessss window contains the
- controls, and the right side contains the display. Masses
- can be created and placed with the mouse when in MMMMaaaassssssss mode,
- and springs can be created when in SSSSpppprrrriiiinnnngggg mode. Temporary
- springs that connect the mouse and any mass can be used to
- pull on objects. Masses and springs can be selected in edit
- mode, and moved around. Parameters of the masses and
- springs (such as Mass or Elasticity) can be set upon
- creation or if they are selected.
-
- Forces (such as gravity) can be enabled by pressing the
- appropriate force button with customizable parameters.
- Environment parameters such as viscosity of the medium and
- stickiness of the walls can also be set. Each of the four
- walls can be disabled.
-
- The animation/simulation is activated by pressing the GGGGOOOO!!!!
- button.
-
- The entire system (masses, springs and parameters) can be
- loaded and saved to files. XXXXsssspppprrrriiiinnnnggggiiiieeeessss comes with many
- demonstration files.
-
-
- CCCCOOOONNNNTTTTRRRROOOOLLLLSSSS
- There are three types of controls (widgets) in xxxxsssspppprrrriiiinnnnggggiiiieeeessss.
- There are push buttons, checkboxes and sliders. The push
- buttons and checkboxes act in the obvious manner. If you
- click on them, they get activated.
-
- Sliders are a little more compilicated. They consist of a
- left arrow button, a right arrow button, and a text box.
- The text box displays the current value. Clicking on this
- text box causes it to become highlighted. All text input
- then goes to the text box. After entering a value, return
- accepts it, and escape cancels.
- The value displayed can also be changed by pressing the
-
-
-
- Page 2 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- arrow buttons. Using the _L_e_f_t _m_o_u_s_e _b_u_t_t_o_n causes the value
- to be incremented or decremented by one step. The _M_i_d_d_l_e
- _m_o_u_s_e _b_u_t_t_o_n is the same as the left mouse button, but
- holding it down causes it to scan by one step at a time.
- The _R_i_g_h_t _m_o_u_s_e _b_u_t_t_o_n scans like the _M_i_d_d_l_e _m_o_u_s_e _b_u_t_t_o_n
- except that it scans 10 steps at a time.
-
-
- EEEEDDDDIIIITTTTIIIINNNNGGGG MMMMOOOODDDDEEEESSSS
- There are three main modes in xxxxsssspppprrrriiiinnnnggggiiiieeeessss. These are _E_d_i_t,
- _M_a_s_s and _S_p_r_i_n_g. In _E_d_i_t mode, you can select, move and
- throw objects. In _M_a_s_s mode, you can create masses. In
- _S_p_r_i_n_g mode, you can create springs and tug on an object
- with a spring connected to the mouse.
-
- More specifically,
-
- _E_d_i_t mmmmooooddddeeee::::
- ---- _L_e_f_t _m_o_u_s_e _b_u_t_t_o_n selects objects.
- If you click on or near an object, it becomes
- selected, and all other objects become unselected. If
- you hold down shift while clicking, the object becomes
- selected (or unselected if it was already selected),
- and all other objects remain the same.
- If you do not click near an object, dragging the
- mouse causes a selection box to appear. Anything
- within the selection box when the mouse is released
- becomes selected. All other masses become unselected,
- unless the shift key was held down for the initial
- click.
-
- ---- _M_i_d_d_l_e _m_o_u_s_e _b_u_t_t_o_n moves objects.
- All selected objects move with the mouse. The masses
- are frozen in their positions after the initial click.
- They continue to move relative to the mouse movement
- until the middle button is released.
-
- ---- _R_i_g_h_t _m_o_u_s_e _b_u_t_t_o_n throws objects.
- This acts the same way as moving objects with the
- middle button, except for the fact that the mouse
- velocity is transferred to all selected objects when
- the right mouse button is released.
- Note: a good way to stop an object from moving is to
- simply select it and click the right mouse button.
-
- _M_a_s_s mmmmooooddddeeee::::
- When you click with the mouse, a mass appears. The
- mass takes on the values of the _M_a_s_s and _E_l_a_s_t_i_c_i_t_y
- sliders. The mass is placed when the mouse button is
- released.
-
- _S_p_r_i_n_g mmmmooooddddeeee::::
-
-
-
- Page 3 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- When you click with the mouse, if there is a mass
- nearby, one end of a spring is connected to it. The
- other end of the spring is connected to the cursor
- until the mouse button is released. If no mass is
- nearby when the spring is released, the spring is
- discarded. The new spring takes on the values of the
- _K_s_p_r_i_n_g and _K_d_a_m_p sliders. The rest length of the
- spring is equal to the length of the spring when it was
- created.
-
- ---- _L_e_f_t _m_o_u_s_e _b_u_t_t_o_n adds a spring between two masses
- while actively affecting the first mass.
-
- ---- _M_i_d_d_l_e _m_o_u_s_e _b_u_t_t_o_n adds a spring between the first
- mass and the cursor, actively affecting the first mass.
- The spring is discarded when the mouse button is
- released.
-
- ---- _R_i_g_h_t _m_o_u_s_e _b_u_t_t_o_n adds a spring between two masses.
- The first mass is not affected by the spring until the
- spring is in place after the mouse is released.
-
-
- OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN
- Masses and Springs
- Accelerations on the masses are calculated according
- to gravity (and other special forces), viscous forces,
- and by forces from the springs. When a mass collides
- with a wall, its velocity in the direction of the wall
- is reversed. The resulting velocity is multipled by
- the _E_l_a_s_t_i_c_i_t_y of the mass. So, an elasticity of 0.0
- causes an inelastic collision (it stops on the wall),
- and an elasticity of 1.0 results in an elastic
- collision.
- If a mass is fixed, all forces on it are ignored. It
- simply does not move. Think of it as a nail (a really
- good one).
- The _M_a_s_s and _E_l_a_s_t_i_c_i_t_y of a mass can be changed by
- selecting the mass and changing the values on the
- corresponding sliders. To make a mass fixed or
- unfixed, check or uncheck the _F_i_x_e_d _M_a_s_s checkbox while
- the mass is selected.
-
- A spring has three parameters associated with it.
- _K_s_p_r_i_n_g, _K_d_a_m_p and rest length. The spring force is
- calculated as follows (according to Hooke's law):
- FFFF = - _K_s_p_r_i_n_g * (length - rest length) - _K_d_a_m_p *
- (velocity in spring direction)
-
- To change the _K_s_p_r_i_n_g or _K_d_a_m_p of a spring, change
- the values of the sliders when the spring is selected.
- Pressing the _S_e_t _R_e_s_t _L_e_n_g_t_h button changes the rest
-
-
-
- Page 4 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- length of a selected spring to its current length.
-
-
- Forces and sticky stuff
- There are four special forces. They can be turned on
- and off by clicking their appropriate box. When
- highlighted, the force is on. Each of these forces has
- two parameters associated with it (for example,
- _M_a_g_n_i_t_u_d_e and _D_i_r_e_c_t_i_o_n for gravity). Only one
- forces's parameters are displayed at a time (below the
- force buttons). Which particular force is shown by a
- darker box around that force. This force selector box
- is moved to another force whenever a force is turned
- on.
-
- Some of the forces are applied relative to some
- specified origin, or center point. By default, this
- center point is the center of the screen. It can be
- changed to be any one particular mass by selecting a
- single mass, and pushing the _S_e_t _C_e_n_t_e_r button. If no
- masses are selected, the current center is changed to
- be the center of the screen.
- Center points are marked by a box around the center
- mass.
-
- There are four forces that can be enabled. The first
- one, _G_r_a_v_i_t_y, acts in the familiar manner. It
- accelerates masses by the value specified by _G_r_a_v_i_t_y in
- a direction specified by _D_i_r_e_c_t_i_o_n. The _D_i_r_e_c_t_i_o_n is
- measured in degrees, with 0.0 degrees being down,
- increasing counter-clockwise.
- The second force is a bit strange, and isn't real.
- Its a force which attracts the center of mass of all
- the objects toward the center point. It has a
- _M_a_g_n_i_t_u_d_e and a _D_a_m_p_i_n_g coefficient.
- The third force is a force which attracts all masses
- toward the center point. This force has a _M_a_g_n_i_t_u_d_e
- and an _E_x_p_o_n_e_n_t associated with it. The _E_x_p_o_n_e_n_t is
- simply how the force relation works. A value of 2.0
- means inverse-square force (the force is inversely
- proportional to the distance squared). A value of 0.0
- is a constant force independent of position. If the
- _M_a_g_n_i_t_u_d_e of this force is negative, it becomes a
- repulsion force.
- The fourth force is a wall repulsion force. Masses
- are repelled by a force from each wall that is on.
- This force has a _M_a_g_n_i_t_u_d_e and _E_x_p_o_n_e_n_t associated with
- it. The _E_x_p_o_n_e_n_t behaves similarly to that of the
- third force.
-
- For the most part, most everything obeys _f = _m_a. The
- only exceptions are wall bounces and wall stickiness.
-
-
-
- Page 5 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- Another unphysical aspect is found in some of the
- special forces (the second and third ones). If a
- center point exists, that mass does not receive any
- force response from other masses due to the special
- force. In other words, these two special forces are
- not _e_q_u_a_l _a_n_d _o_p_p_o_s_i_t_e forces. They're pretty much
- just unreal.
-
- _V_i_s_c_o_s_i_t_y is a viscous drag force which applies a
- resistive force on the masses proportional to their
- velocity.
- _S_t_i_c_k_i_n_e_s_s is not a real force. When a mass hits a
- wall, it loses part of its velocity component in the
- direction of the wall (in an amount proportional to the
- _S_t_i_c_k_i_n_e_s_s). If it loses all of this component, it
- remains stuck to the wall. It will remain stuck to the
- wall until a force (which exceeds an amount
- proportional to the _S_t_i_c_k_i_n_e_s_s) pulls it off the wall.
-
-
- Numerics
- The internals of xxxxsssspppprrrriiiinnnnggggiiiieeeessss consist of a fourth order
- Runge-Kutta (RK4) differental equation solver. Consult
- a Numerical Methods text for more information. The
- _T_i_m_e _S_t_e_p that is used by this solver (the ddddtttt) can be
- set using the slider.
- The solver can be selectively made into an adaptive
- RK4 solver using the _A_d_a_p_t_i_v_e _T_i_m_e _S_t_e_p checkbox. An
- adaptive solver chooses the best time step value
- according to an error calculation. The error is not
- allowed to exceed the _P_r_e_c_i_s_i_o_n value. Lower precision
- values result in smaller time steps. While this is
- more accurate, the simulation runs slower.
- You will notice that some objects will tend to "blow
- up" easily. This is because the objects are unstable,
- or are sensitive to small numerical errors. An object
- will tend to "blow up" less with smaller time steps.
- By using an adaptive solver, the simulation can be made
- more accurate only when necessary. This results in a
- more stable system which runs at a reasonable speed.
-
-
- Walls
- There are four walls. In case you haven't guessed by
- now, they are the _t_o_p, _l_e_f_t, _r_i_g_h_t and _b_o_t_t_o_m walls.
- They are located at the window boundaries; they move
- with window resizes. Individual walls can be enabled
- and disabled by checking the corresponding checkboxes.
-
- Walls are only one-way. An object moving from the
- screen toward a wall will bounce off the wall. But an
- object moving from off screen toward the screen will
-
-
-
- Page 6 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- pass through the walls.
-
-
- Saving and Restoring State
- The state of the world (at least for xxxxsssspppprrrriiiinnnnggggiiiieeeessss)
- includes all of the masses and springs, as well as the
- system parameters. By pushing the _S_a_v_e _S_t_a_t_e button,
- the current system state is saved. By pushing the
- _R_e_s_t_o_r_e _S_t_a_t_e _b_u_t_t_o_n the previously saved system state
- is restored (if no previous save was made, the initial
- state is used).
-
- This is useful for temporarily saving a system
- configuration that you do not feel like setting up
- again (or saving to a file), that you might disturb
- with experimentation. If you break it, you can _R_e_s_t_o_r_e
- _S_t_a_t_e any number of times you like.
- The _R_e_s_e_t button resets xxxxsssspppprrrriiiinnnnggggiiiieeeessss to its initial
- configuration. All the masses and springs are removed,
- and the default system parameters are used.
-
-
- Saving and Loading Files
- The system state can be saved to and loaded from
- files. By pushing the _L_o_a_d _F_i_l_e button, a previously
- saved file can be loaded. This will load up all the
- masses and springs that were saved, as well as the
- system parameters. Any previous state before the load
- is cleared. Pushing the _S_a_v_e _F_i_l_e button saves this
- information in the designated file. The _I_n_s_e_r_t _F_i_l_e
- button is much like the _L_o_a_d _F_i_l_e button, except that
- the current state is not cleared. Instead, only the
- masses and springs are loaded (the system paramaters
- are not changed), and are added to the current
- collection. If no objects are selected when the
- _I_n_s_e_r_t _F_i_l_e button is pressed, then all the objects in
- the file are selected after they are loaded.
-
- The filenames are entered in the text window, which
- is located at the bottom right of the window. For
- consistency, the filenames should terminate with
- "....xxxxsssspppp". When a file is loaded or saved, this extension
- is automatically added if not added by the user.
- Standard emacs-like editing features are present. The
- following key controls can be used:
- ccccoooonnnnttttrrrroooollll----BBBB move cursor backward
- ccccoooonnnnttttrrrroooollll----FFFF move cursor forward
- ccccoooonnnnttttrrrroooollll----AAAA goto beginning of line
- ccccoooonnnnttttrrrroooollll----EEEE goto end of line
- ccccoooonnnnttttrrrroooollll----KKKK kill to end of line
- ccccoooonnnnttttrrrroooollll----YYYY yank from kill buffer
- ccccoooonnnnttttrrrroooollll----DDDD delete character under cursor
-
-
-
- Page 7 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- ccccoooonnnnttttrrrroooollll----UUUU erase all input
- ccccoooonnnnttttrrrroooollll----TTTT transpose character under cursor with
- previous character
- EEEEssssccccaaaappppeeee exit from filename edit mode
-
- By default, the directory which contains the
- xxxxsssspppprrrriiiinnnnggggiiiieeeessss files is present automatically. If the
- environment variable SSSSPPPPRRRRIIIINNNNGGGGDDDDIIIIRRRR is set, then the default
- directory is changed to reflect it.
- If a file error occurs (for example, the file does
- not exist), a beep is emitted.
-
-
- Other stuff
- The _G_O! button simply turns on and off the animation.
- With _G_O! turned off, xxxxsssspppprrrriiiinnnnggggiiiieeeessss uses up little CPU
- time.
-
- The _S_h_o_w _S_p_r_i_n_g_s checkbox controls whether or not the
- springs are drawn. If there are a lot of springs,
- animation may go faster with this option on. Sometimes
- an object will even look better with only the masses.
-
- When placing masses or springs, objects can be placed
- in a gridlike fashion if the _G_r_i_d _S_n_a_p checkbox is
- enabled. Masses will be separated (vertically and
- horizontally) by the amount specified by the _G_r_i_d _S_n_a_p
- slider.
-
- When the _D_u_p_l_i_c_a_t_e button is pushed, all selected
- masses and springs are duplicated. The copy is left in
- the same place, unselected.
-
- By pushing the _S_e_l_e_c_t _A_l_l button, all masses and
- springs are selected.
-
- By pushing the _D_e_l_e_t_e button, or pressing the _D_e_l_e_t_e
- key, all selected objects are deleted. Note that if a
- mass is deleted, all attached springs are also deleted
- (even if they were not selected).
-
- The _Q_u_i_t button quits the program. This same effect
- is found by pressing the _Q key.
-
-
- FFFFIIIILLLLEEEE FFFFOOOORRRRMMMMAAAATTTT
- The xxxxsssspppprrrriiiinnnnggggiiiieeeessss file format is human readable. Each line
- consists of a four letter command string, followed by the
- parameters for that command. The file must start with the
- command "####1111....0000". (This 1.0 refers to file format version
- 1.0, and not the version of xspringies being run) Each of
- the commands below is on a line by itself. There are no
-
-
-
- Page 8 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- blank lines allowed. The file must end in a newline.
-
- The file consists of the following commands:
- ccccmmmmaaaassss <current _M_a_s_s value>
- eeeellllaaaassss <current _E_l_a_s_t_i_c_i_t_y value>
- kkkksssspppprrrr <current _K_s_p_r_i_n_g value>
- kkkkddddmmmmpppp <current _K_d_a_m_p value>
- ffffiiiixxxxmmmm <boolean value for _F_i_x_e_d _M_a_s_s>
- sssshhhhwwwwssss <boolean value for _S_h_o_w _S_p_r_i_n_g_s>
- cccceeeennnntttt <mass id number of center mass>
- If there is no center mass (i.e. - center of screen
- is to be used), then the value of -_1 is used.
- ffffrrrrcccceeee <force id number> <boolean active>
- <parameter #1 value> <parameter #2 value>
- The <force id number> sequence is as follows:
- 0000 - Gravity
- 1111 - Center of mass attraction force
- 2222 - Center attraction force
- 3333 - Wall repulsion force
- vvvviiiisssscccc <current _V_i_s_c_o_s_i_t_y value>
- ssssttttcccckkkk <current _S_t_i_c_k_i_n_e_s_s value>
- sssstttteeeepppp <current _T_i_m_e _S_t_e_p value>
- pppprrrreeeecccc <current _P_r_e_c_i_s_i_o_n value>
- aaaaddddpppptttt <boolean value for _A_d_a_p_t_i_v_e _T_i_m_e _S_t_e_p>
- ggggssssnnnnpppp <current _G_r_i_d _S_n_a_p value> <boolean enable>
- wwwwaaaallllllll <boolean top> <boolean left> <boolean right>
- <boolean bottom>
- mmmmaaaassssssss <mass id number> <x position value>
- <y position value> <x velocity value>
- <y velocity value> <mass value> <elasticity value>
- For each mass, the <mass id number> must be unique.
- They do not need to be in any order. If a mass is
- fixed, then the <mass value> field is negated.
- ssssppppnnnngggg <spring id number> <mass #1 id number>
- <mass #2 id number> <Kspring value> <Kdamp value>
- <rest length value>
- For each spring, the <spring id number> must be
- unique. They do not need to be in any order. The
- order of the <mass id number>'s is not important.
-
- All _v_a_l_u_e_s are floating point numbers. All _i_d _n_u_m_b_e_r_s are
- positive integers, and all _b_o_o_l_e_a_n values are non-zero/zero
- for True/False. It is possible to feed xxxxsssspppprrrriiiinnnnggggiiiieeeessss bogus
- values. It may produce interesting or amusing side effects,
- but will most likely cause an object to explode or
- xxxxsssspppprrrriiiinnnnggggiiiieeeessss to crash.
-
- AAAAUUUUTTTTHHHHOOOORRRR
- Douglas DeCarlo (dmd@gradient.cis.upenn.edu)
-
- Please send demo files, comments, suggestions, bug reports,
- bug fixes and enhancements.
-
-
-
- Page 9 (printed 7/7/95)
-
-
-
-
-
-
- XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((SSSSeeeepppptttteeeemmmmbbbbeeeerrrr 1111,,,, 1111999999992222)))) XXXXSSSSPPPPRRRRIIIINNNNGGGGIIIIEEEESSSS((((1111))))
-
-
-
- With thanks to:
- Elliott Evans
- Bitmap slave.
-
- Nathan Loofbourrow
- I bothered him a whole lot about the user
- interface.
-
- Drew Olbrich
- The blame for "stickiness" falls on him, as well as
- a few other things.
-
- Andy Witkin
- For teaching a really great physically based
- modeling course at CMU. Many ideas (both methods
- and interface) came from that class.
-
- And thanks to the many other people who helped in
- testing xxxxsssspppprrrriiiinnnnggggiiiieeeessss and make some of the neat demo
- files, including James Helfrich, Brian Kelley, Patrick
- Lopez, Chris Newman and Jef Poskanzer.
-
-
- RRRREEEESSSSTTTTRRRRIIIICCCCTTTTIIIIOOOONNNNSSSS
- xxxxsssspppprrrriiiinnnnggggiiiieeeessss runs faster on a monochrome display than on a
- color display (usually).
-
- You probably don't want to run xxxxsssspppprrrriiiinnnnggggiiiieeeessss on a slow machine
- or a machine which does slow bit-blitting operations. Well,
- I guess you could... But you would be sorry for even trying.
-
- Here is a good rule: If xxxxsssspppprrrriiiinnnnggggiiiieeeessss isn't fun to use, then
- your machine is either too slow, or it is overloaded. Or
- maybe you just aren't a fun person. :-)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 10 (printed 7/7/95)
-
-
-
-