# HG changeset patch # User Robert McIntyre # Date 1396138678 14400 # Node ID 19b55aaf446200a13020140b5c1d5a2c34e7bf31 # Parent 6d460ac3f5d028f743156c500ec59b9abeb287fe complete first draft of user guide. diff -r 6d460ac3f5d0 -r 19b55aaf4462 thesis/user-guide.org --- a/thesis/user-guide.org Sat Mar 29 20:12:52 2014 -0400 +++ b/thesis/user-guide.org Sat Mar 29 20:17:58 2014 -0400 @@ -239,42 +239,57 @@ since the last frame was rendered, according to whatever clock jme is currently using. The default is to use IsoTimer which will result in this value always being the same. - - =(position-camera world position rotation)= :: set the position of the simulation's main camera. + - =(enable-debug world)= :: turn on debug wireframes for each simulated object. + - =(set-gravity world gravity)= :: set the gravity of a running simulation. + - =(box length width height & {options})= :: create a box in the simulation. Options is a hash map specifying texture, mass, etc. Possible options are =:name=, =:color=, =:mass=, =:friction=, =:texture=, =:material=, =:position=, =:rotation=, =:shape=, and =:physical?=. + - =(sphere radius & {options})= :: create a sphere in the simulation. Options are the same as in =box=. + - =(load-blender-model file-name)= :: create a node structure representing that described in a blender file. + - =(light-up-everything world)= :: distribute a standard compliment of lights throught the simulation. Should be adequate for most purposes. + - =(node-seq node)= :: return a recursuve list of the node's children. + - =(nodify name children)= :: construct a node given a node-name and desired children. + - =(add-element world element)= :: add an object to a running world simulation. + - =(set-accuracy world accuracy)= :: change the accuracy of the world's physics simulator. + - =(asset-manager)= :: get an /AssetManager/, a jMonkeyEngine construct that is useful for loading textures and is required for smooth interaction with jMonkeyEngine library functions. + + - =(load-bullet)= :: unpack native libraries and initialize + blender. This function is required before other world building + functions are called. *** Creature Manipulation / Import - =(body! creature)= :: give the creature a physical body. + - =(vision! creature)= :: give the creature a sense of vision. Returns a list of functions which will each, when called during a simulation, return the vision data for the channel of @@ -284,6 +299,7 @@ containing the eye's /topology/, a vector of coordinates, and the eye's /data/, a vector of RGB values filtered by the eye's sensitivity. + - =(hearing! creature)= :: give the creature a sense of hearing. Returns a list of functions, one for each ear, that when called will return a frame's worth of hearing data for that @@ -291,6 +307,7 @@ order of the names of the ear nodes in the blender file. The data returned by the functions is an array PCM encoded wav data. + - =(touch! creature)= :: give the creature a sense of touch. Returns a single function that must be called with the /root node/ of the world, and which will return a vector of /touch-data/ @@ -298,10 +315,12 @@ which contains a /topology/ that specifies the distribution of touch sensors, and the /data/, which is a vector of =[activation, length]= pairs for each touch hair. + - =(proprioception! creature)= :: give the creature the sense of proprioception. Returns a list of functions, one for each joint, that when called during a running simulation will report the =[headnig, pitch, roll]= of the joint. + - =(movement! creature)= :: give the creature the power of movement. Creates a list of functions, one for each muscle, that when called with an integer, will set the recruitment of that @@ -314,25 +333,33 @@ - =(view-vision)= :: create a function that when called with a list of visual data returned from the functions made by =vision!=, will display that visual data on the screen. + - =(view-hearing)= :: same as =view-vision= but for hearing. + - =(view-touch)= :: same as =view-vision= but for touch. + - =(view-proprioception)= :: same as =view-vision= but for proprioception. + - =(view-movement)= :: same as =view-vision= but for proprioception. + - =(view anything)= :: =view= is a polymorphic function that allows you to inspect almost anything you could reasonably expect to be able to ``see'' in =CORTEX=. + - =(text anything)= :: =text= is a polymorphic function that allows you to convert practically anything into a text string. + - =(println-repl anything)= :: print messages to clojure's repl instead of the simulation's terminal window. -*** Misc - - - =(load-bullet)= :: unpack native libraries and initialize - blender. This function is required before other world building - functions are called. - =(mega-import-jme3)= :: for experimenting at the REPL. This function will import all jMonkeyEngine3 classes for immediate use. + + - =(display-dialated-time world timer)= :: Shows the time as it is + flowing in the simulation on a HUD display. + + +