changeset 508:c11d3fc3e6f0

inspecting cortex section.
author Robert McIntyre <rlm@mit.edu>
date Sun, 30 Mar 2014 01:07:19 -0400
parents f2f029e1a6a9
children 81c845a91378
files thesis/cortex.bib thesis/cortex.org thesis/images/diagram_rendermanager2.png thesis/images/goldeneye-4-player.png
diffstat 4 files changed, 23 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
     1.1 --- a/thesis/cortex.bib	Sun Mar 30 00:53:14 2014 -0400
     1.2 +++ b/thesis/cortex.bib	Sun Mar 30 01:07:19 2014 -0400
     1.3 @@ -12,7 +12,10 @@
     1.4    year = 2013,
     1.5    addendum = {\why{All complicated creatures in {\tt CORTEX} are
     1.6                    described using Blender's extensive 3D modeling
     1.7 -                  capabilities.}}
     1.8 +                  capabilities. Blender is a very sophistaced 3D
     1.9 +                  modeling environment and has been used to create a
    1.10 +                  short movie called Sintel
    1.11 +                  \url{http://www.sintel.org/}}}
    1.12  }
    1.13  
    1.14  @inproceedings{winston-directed-perception, 
     2.1 --- a/thesis/cortex.org	Sun Mar 30 00:53:14 2014 -0400
     2.2 +++ b/thesis/cortex.org	Sun Mar 30 01:07:19 2014 -0400
     2.3 @@ -641,11 +641,11 @@
     2.4     #+ATTR_LaTeX: :width 10cm
     2.5     [[./images/empty-sense-nodes.png]]
     2.6  
     2.7 -** COMMENT Bodies are composed of segments connected by joints
     2.8 +** Bodies are composed of segments connected by joints
     2.9  
    2.10     Blender is a general purpose animation tool, which has been used in
    2.11     the past to create high quality movies such as Sintel
    2.12 -   \cite{sintel}. Though Blender can model and render even complicated
    2.13 +   \cite{blender}. Though Blender can model and render even complicated
    2.14     things like water, it is crucual to keep models that are meant to
    2.15     be simulated as creatures simple. =Bullet=, which =CORTEX= uses
    2.16     though jMonkeyEngine3, is a rigid-body physics system. This offers
    2.17 @@ -957,7 +957,7 @@
    2.18      #+ATTR_LaTeX: :width 15cm
    2.19      [[./images/physical-hand.png]]
    2.20  
    2.21 -** COMMENT Eyes reuse standard video game components
    2.22 +** Eyes reuse standard video game components
    2.23  
    2.24     Vision is one of the most important senses for humans, so I need to
    2.25     build a simulated sense of vision for my AI. I will do this with
    2.26 @@ -991,9 +991,9 @@
    2.27      #+caption: =ViewPorts= are cameras in the world. During each frame, 
    2.28      #+caption: the =RenderManager= records a snapshot of what each view 
    2.29      #+caption: is currently seeing; these snapshots are =FrameBuffer= objects.
    2.30 -    #+name: name
    2.31 +    #+name: rendermanagers
    2.32      #+ATTR_LaTeX: :width 10cm
    2.33 -    [[../images/diagram_rendermanager2.png]]
    2.34 +    [[./images/diagram_rendermanager2.png]]
    2.35  
    2.36      Each =ViewPort= can have any number of attached =SceneProcessor=
    2.37      objects, which are called every time a new frame is rendered. A
    2.38 @@ -1165,6 +1165,7 @@
    2.39      #+caption: information from the simulation.
    2.40      #+name: vision-kernel
    2.41      #+begin_listing clojure
    2.42 +    #+BEGIN_SRC clojure
    2.43  (defn vision-kernel
    2.44    "Returns a list of functions, each of which will return a color
    2.45     channel's worth of visual information when called inside a running
    2.46 @@ -1205,6 +1206,7 @@
    2.47                     (.getRGB @vision-image x y))))))
    2.48              register-eye!)))
    2.49           retinal-map))))
    2.50 +    #+END_SRC
    2.51      #+end_listing
    2.52  
    2.53      Note that since each of the functions generated by =vision-kernel=
    2.54 @@ -1224,6 +1226,7 @@
    2.55      #+caption: eyes.
    2.56      #+name: vision!
    2.57      #+begin_listing clojure
    2.58 +    #+BEGIN_SRC clojure
    2.59  (defn vision!
    2.60    "Returns a list of functions, each of which returns visual sensory
    2.61     data when called inside a running simulation."
    2.62 @@ -1232,6 +1235,7 @@
    2.63     concat 
    2.64     (for [eye (eyes creature)]
    2.65       (vision-kernel creature eye))))
    2.66 +    #+END_SRC
    2.67      #+end_listing
    2.68  
    2.69      #+caption: Simulated vision with a test creature and the 
    2.70 @@ -1254,7 +1258,7 @@
    2.71      community and is now (in modified form) part of a system for
    2.72      capturing in-game video to a file.
    2.73  
    2.74 -** COMMENT Hearing is hard; =CORTEX= does it right
    2.75 +** Hearing is hard; =CORTEX= does it right
    2.76     
    2.77     At the end of this section I will have simulated ears that work the
    2.78     same way as the simulated eyes in the last section. I will be able to
    2.79 @@ -1375,6 +1379,7 @@
    2.80      #+caption: listeners via context copying/switching.
    2.81      #+name: sync-openal-sources
    2.82      #+begin_listing C
    2.83 +    #+BEGIN_SRC C
    2.84  void syncSources(ALsource *masterSource, ALsource *slaveSource, 
    2.85  		 ALCcontext *masterCtx, ALCcontext *slaveCtx){
    2.86    ALuint master = masterSource->source;
    2.87 @@ -1438,6 +1443,7 @@
    2.88    // Restore whatever context was previously active.
    2.89    alcMakeContextCurrent(current);
    2.90  }
    2.91 +    #+END_SRC
    2.92      #+end_listing
    2.93  
    2.94      With this special context-switching device, and some ugly JNI
    2.95 @@ -1449,6 +1455,7 @@
    2.96      #+caption: all sensory data to a continuation function.
    2.97      #+name: add-ear
    2.98      #+begin_listing clojure
    2.99 +    #+BEGIN_SRC clojure
   2.100  (defn add-ear!  
   2.101    "Create a Listener centered on the current position of 'ear 
   2.102     which follows the closest physical node in 'creature and 
   2.103 @@ -1464,8 +1471,8 @@
   2.104      (update-listener-velocity! target lis)
   2.105      (.addListener audio-renderer lis)
   2.106      (.registerSoundProcessor audio-renderer lis sp)))
   2.107 +    #+END_SRC
   2.108      #+end_listing
   2.109 -
   2.110      
   2.111      The =Send= device, unlike most of the other devices in =OpenAL=,
   2.112      does not render sound unless asked. This enables the system to
   2.113 @@ -1478,6 +1485,7 @@
   2.114      #+caption: Program to enable arbitrary hearing in =CORTEX=
   2.115      #+name: hearing
   2.116      #+begin_listing clojure
   2.117 +#+BEGIN_SRC clojure
   2.118  (defn hearing-kernel
   2.119    "Returns a function which returns auditory sensory data when called
   2.120     inside a running simulation."
   2.121 @@ -1504,6 +1512,7 @@
   2.122    [#^Node creature]
   2.123    (for [ear (ears creature)]
   2.124      (hearing-kernel creature ear)))
   2.125 +    #+END_SRC
   2.126      #+end_listing
   2.127  
   2.128      Armed with these functions, =CORTEX= is able to test possibly the
   2.129 @@ -1515,6 +1524,7 @@
   2.130      #+caption: goes over a threshold.
   2.131      #+name: sound-test
   2.132      #+begin_listing java
   2.133 +    #+BEGIN_SRC java
   2.134  /**
   2.135   * Respond to sound!  This is the brain of an AI entity that 
   2.136   * hears its surroundings and reacts to them.
   2.137 @@ -1539,6 +1549,7 @@
   2.138      else {
   2.139  	entity.getMaterial().setColor("Color", ColorRGBA.Gray);
   2.140      }
   2.141 +    #+END_SRC
   2.142      #+end_listing
   2.143  
   2.144      #+caption: First ever simulation of multiple listerners in =CORTEX=.
   2.145 @@ -2358,7 +2369,7 @@
   2.146     #+ATTR_LaTeX: :width 16cm
   2.147     [[./images/integration.png]]
   2.148  
   2.149 -** COMMENT =CORTEX= enables many possiblities for further research
   2.150 +** =CORTEX= enables many possiblities for further research
   2.151  
   2.152     Often times, the hardest part of building a system involving
   2.153     creatures is dealing with physics and graphics. =CORTEX= removes
     3.1 Binary file thesis/images/diagram_rendermanager2.png has changed
     4.1 Binary file thesis/images/goldeneye-4-player.png has changed