changeset 487:19b55aaf4462

complete first draft of user guide.
author Robert McIntyre <rlm@mit.edu>
date Sat, 29 Mar 2014 20:17:58 -0400
parents 6d460ac3f5d0
children 21b9dcec8d71
files thesis/user-guide.org
diffstat 1 files changed, 33 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
     1.1 --- a/thesis/user-guide.org	Sat Mar 29 20:12:52 2014 -0400
     1.2 +++ b/thesis/user-guide.org	Sat Mar 29 20:17:58 2014 -0400
     1.3 @@ -239,42 +239,57 @@
     1.4            since the last frame was rendered, according to whatever
     1.5            clock jme is currently using. The default is to use IsoTimer
     1.6            which will result in this value always being the same.
     1.7 - 
     1.8  
     1.9     - =(position-camera world position rotation)= :: set the position
    1.10          of the simulation's main camera.
    1.11 +
    1.12     - =(enable-debug world)= :: turn on debug wireframes for each
    1.13          simulated object.
    1.14 +
    1.15     - =(set-gravity world gravity)= :: set the gravity of a running
    1.16          simulation.
    1.17 +
    1.18     - =(box length width height & {options})= :: create a box in the
    1.19          simulation. Options is a hash map specifying texture, mass,
    1.20          etc. Possible options are =:name=, =:color=, =:mass=,
    1.21          =:friction=, =:texture=, =:material=, =:position=,
    1.22          =:rotation=, =:shape=, and =:physical?=.
    1.23 +
    1.24     - =(sphere radius & {options})= :: create a sphere in the simulation.
    1.25          Options are the same as in =box=.
    1.26 +
    1.27     - =(load-blender-model file-name)= :: create a node structure
    1.28          representing that described in a blender file.
    1.29 +
    1.30     - =(light-up-everything world)= :: distribute a standard compliment
    1.31          of lights throught the simulation. Should be adequate for most
    1.32          purposes.
    1.33 +
    1.34     - =(node-seq node)= :: return a recursuve list of the node's
    1.35          children.
    1.36 +
    1.37     - =(nodify name children)= :: construct a node given a node-name and
    1.38          desired children.
    1.39 +
    1.40     - =(add-element world element)= :: add an object to a running world
    1.41          simulation.
    1.42 +
    1.43     - =(set-accuracy world accuracy)= :: change the accuracy of the
    1.44          world's physics simulator.
    1.45 +
    1.46     - =(asset-manager)= :: get an /AssetManager/, a jMonkeyEngine
    1.47          construct that is useful for loading textures and is required
    1.48          for smooth interaction with jMonkeyEngine library functions.
    1.49 +
    1.50 +   - =(load-bullet)=   :: unpack native libraries and initialize
    1.51 +        blender. This function is required before other world building
    1.52 +        functions are called.
    1.53  	
    1.54  
    1.55  *** Creature Manipulation / Import
    1.56  
    1.57     - =(body! creature)= :: give the creature a physical body.
    1.58 +
    1.59     - =(vision! creature)= :: give the creature a sense of vision.
    1.60          Returns a list of functions which will each, when called
    1.61          during a simulation, return the vision data for the channel of
    1.62 @@ -284,6 +299,7 @@
    1.63          containing the eye's /topology/, a vector of coordinates, and
    1.64          the eye's /data/, a vector of RGB values filtered by the eye's
    1.65          sensitivity. 
    1.66 +
    1.67     - =(hearing! creature)= :: give the creature a sense of hearing.
    1.68          Returns a list of functions, one for each ear, that when
    1.69          called will return a frame's worth of hearing data for that
    1.70 @@ -291,6 +307,7 @@
    1.71          order of the names of the ear nodes in the blender file. The
    1.72          data returned by the functions is an array PCM encoded wav
    1.73          data. 
    1.74 +
    1.75     - =(touch! creature)= :: give the creature a sense of touch. Returns
    1.76          a single function that must be called with the /root node/ of
    1.77          the world, and which will return a vector of /touch-data/
    1.78 @@ -298,10 +315,12 @@
    1.79          which contains a /topology/ that specifies the distribution of
    1.80          touch sensors, and the /data/, which is a vector of
    1.81          =[activation, length]= pairs for each touch hair.
    1.82 +
    1.83     - =(proprioception! creature)= :: give the creature the sense of
    1.84          proprioception. Returns a list of functions, one for each
    1.85          joint, that when called during a running simulation will
    1.86          report the =[headnig, pitch, roll]= of the joint.
    1.87 +
    1.88     - =(movement! creature)= :: give the creature the power of movement.
    1.89          Creates a list of functions, one for each muscle, that when
    1.90          called with an integer, will set the recruitment of that
    1.91 @@ -314,25 +333,33 @@
    1.92     - =(view-vision)= :: create a function that when called with a list
    1.93          of visual data returned from the functions made by =vision!=, 
    1.94          will display that visual data on the screen.
    1.95 +
    1.96     - =(view-hearing)= :: same as =view-vision= but for hearing.
    1.97 +
    1.98     - =(view-touch)= :: same as =view-vision= but for touch.
    1.99 +
   1.100     - =(view-proprioception)= :: same as =view-vision= but for
   1.101          proprioception.
   1.102 +
   1.103     - =(view-movement)= :: same as =view-vision= but for
   1.104          proprioception.
   1.105 +
   1.106     - =(view anything)= :: =view= is a polymorphic function that allows
   1.107          you to inspect almost anything you could reasonably expect to
   1.108          be able to ``see'' in =CORTEX=.
   1.109 +
   1.110     - =(text anything)= :: =text= is a polymorphic function that allows
   1.111          you to convert practically anything into a text string.	
   1.112 +
   1.113     - =(println-repl anything)= :: print messages to clojure's repl
   1.114          instead of the simulation's terminal window.
   1.115  
   1.116 -*** Misc
   1.117 -
   1.118 -   - =(load-bullet)=   :: unpack native libraries and initialize
   1.119 -        blender. This function is required before other world building
   1.120 -        functions are called.
   1.121     - =(mega-import-jme3)= :: for experimenting at the REPL. This
   1.122          function will import all jMonkeyEngine3 classes for immediate
   1.123          use.
   1.124 +
   1.125 +   - =(display-dialated-time world timer)= :: Shows the time as it is
   1.126 +        flowing in the simulation on a HUD display.
   1.127 +
   1.128 +
   1.129 +