comparison org/intro.org @ 34:183744c179e6

MASSIVE cleanup, especially in the vision code
author Robert McIntyre <rlm@mit.edu>
date Thu, 03 Nov 2011 08:28:26 -0700
parents 97703c7f020e
children 3883580e9d28
comparison
equal deleted inserted replaced
33:c377222528e6 34:183744c179e6
1 #+title: Simulated Senses 1 #+title: Simulated Senses
2 #+author: Robert McIntyre 2 #+author: Robert McIntyre
3 #+email: rlm@mit.edu 3 #+email: rlm@mit.edu
4 #+description: Simulating senses for AI research using JMonkeyEngine3 4 #+description: Simulating senses for AI research using JMonkeyEngine3
5 #+keywords: Alan Turing, AI, sinulated senses, jMonkeyEngine3, virtual world
5 #+SETUPFILE: ../../aurellem/org/setup.org 6 #+SETUPFILE: ../../aurellem/org/setup.org
6 #+INCLUDE: ../../aurellem/org/level-0.org 7 #+INCLUDE: ../../aurellem/org/level-0.org
7 #+babel: :mkdirp yes :noweb yes 8 #+babel: :mkdirp yes :noweb yes
8 9
9 * Background 10 * Background
12 as the human mind itself. Clearly, we are still missing some important 13 as the human mind itself. Clearly, we are still missing some important
13 ideas concerning intelligent programs or we would have strong AI 14 ideas concerning intelligent programs or we would have strong AI
14 already. What idea could be missing? 15 already. What idea could be missing?
15 16
16 When Turing first proposed his famous "Turing Test" in the 17 When Turing first proposed his famous "Turing Test" in the
17 groundbreaking paper [[./sources/turing.pdf][/Computing Machines and Intelligence/]], he gave 18 groundbreaking paper [[../sources/turing.pdf][/Computing Machines and Intelligence/]], he gave
18 little importance to how a computer program might interact with the 19 little importance to how a computer program might interact with the
19 world: 20 world:
20 21
21 #+BEGIN_QUOTE 22 #+BEGIN_QUOTE
22 \ldquo{}We need not be too concerned about the legs, eyes, etc. The example of 23 \ldquo{}We need not be too concerned about the legs, eyes, etc. The example of
40 taste, no feeling whatsoever. The only sense you get at all is a 41 taste, no feeling whatsoever. The only sense you get at all is a
41 single point of light, flickering on and off in the void. If this was 42 single point of light, flickering on and off in the void. If this was
42 your life from birth, you would never learn anything, and could never 43 your life from birth, you would never learn anything, and could never
43 become intelligent. Actual humans placed in sensory deprivation 44 become intelligent. Actual humans placed in sensory deprivation
44 chambers experience hallucinations and can begin to loose their sense 45 chambers experience hallucinations and can begin to loose their sense
45 of reality in as little as 15 minutes[sensory-deprivation]. Most of 46 of reality. Most of the time, the programs we write are in exactly
46 the time, the programs we write are in exactly this situation. They do 47 this situation. They do not interface with cameras and microphones,
47 not interface with cameras and microphones, and they do not control a 48 and they do not control a real or simulated body or interact with any
48 real or simulated body or interact with any sort of world. 49 sort of world.
49 50
50 * Simulation vs. Reality 51 * Simulation vs. Reality
51 I want demonstrate that multiple senses are what enable 52 I want demonstrate that multiple senses are what enable
52 intelligence. There are two ways of playing around with senses and 53 intelligence. There are two ways of playing around with senses and
53 computer programs: 54 computer programs:
54 55
56
57 ** Simulation
55 The first is to go entirely with simulation: virtual world, virtual 58 The first is to go entirely with simulation: virtual world, virtual
56 character, virtual senses. The advantages are that when everything is 59 character, virtual senses. The advantages are that when everything is
57 a simulation, experiments in that simulation are absolutely 60 a simulation, experiments in that simulation are absolutely
58 reproducible. It's also easier to change the character and world to 61 reproducible. It's also easier to change the character and world to
59 explore new situations and different sensory combinations. 62 explore new situations and different sensory combinations.
60
61
62 ** Issues with Simulation
63 63
64 If the world is to be simulated on a computer, then not only do you 64 If the world is to be simulated on a computer, then not only do you
65 have to worry about whether the character's senses are rich enough to 65 have to worry about whether the character's senses are rich enough to
66 learn from the world, but whether the world itself is rendered with 66 learn from the world, but whether the world itself is rendered with
67 enough detail and realism to give enough working material to the 67 enough detail and realism to give enough working material to the
73 dust to make a clay sculpture, at least not without spending years 73 dust to make a clay sculpture, at least not without spending years
74 calculating the interactions of every single small grain of 74 calculating the interactions of every single small grain of
75 dust. Maybe a simulated world with today's limitations doesn't provide 75 dust. Maybe a simulated world with today's limitations doesn't provide
76 enough richness for real intelligence to evolve. 76 enough richness for real intelligence to evolve.
77 77
78 ** Issues with Reality 78 ** Reality
79 79
80 The other approach for playing with senses is to hook your software up 80 The other approach for playing with senses is to hook your software up
81 to real cameras, microphones, robots, etc., and let it loose in the 81 to real cameras, microphones, robots, etc., and let it loose in the
82 real world. This has the advantage of eliminating concerns about 82 real world. This has the advantage of eliminating concerns about
83 simulating the world at the expense of increasing the complexity of 83 simulating the world at the expense of increasing the complexity of
105 hardware. All you need is a laptop and some patience. 105 hardware. All you need is a laptop and some patience.
106 106
107 * Choose a Simulation Engine 107 * Choose a Simulation Engine
108 108
109 Mainly because of issues with controlling the flow of time, I chose to 109 Mainly because of issues with controlling the flow of time, I chose to
110 simulate both the world and the character. I set out to make a minimal 110 simulate both the world and the character. I set out to make a world
111 world in which I could embed a character with multiple senses. My main 111 in which I could embed a character with multiple senses. My main goal
112 goal is to make an environment where I can perform further experiments 112 is to make an environment where I can perform further experiments in
113 in simulated senses. 113 simulated senses.
114 114
115 As Carl Sagan once said, "If you wish to make an apple pie from 115 I examined many different 3D environments to try and find something I
116 scratch, you must first invent the universe." I examined many 116 would use as the base for my simulation; eventually the choice came
117 different 3D environments to try and find something I would use as the 117 down to three engines: the Quake II engine, the Source Engine, and
118 base for my simulation; eventually the choice came down to three 118 jMonkeyEngine.
119 engines: the Quake II engine, the Source Engine, and jMonkeyEngine.
120 119
121 ** [[http://www.idsoftware.com][Quake II]]/[[http://www.bytonic.de/html/jake2.html][Jake2]] 120 ** [[http://www.idsoftware.com][Quake II]]/[[http://www.bytonic.de/html/jake2.html][Jake2]]
122 121
123 I spent a bit more than a month working with the Quake II Engine from 122 I spent a bit more than a month working with the Quake II Engine from
124 ID software to see if I could use it for my purposes. All the source 123 ID software to see if I could use it for my purposes. All the source
170 any particular game but is instead meant to be used for any 3D 169 any particular game but is instead meant to be used for any 3D
171 game. After experimenting with each of these three engines and a few 170 game. After experimenting with each of these three engines and a few
172 others for about 2 months I settled on jMonkeyEngine. I chose it 171 others for about 2 months I settled on jMonkeyEngine. I chose it
173 because it had the most features out of all the open projects I looked 172 because it had the most features out of all the open projects I looked
174 at, and because I could then write my code in Clojure, an 173 at, and because I could then write my code in Clojure, an
175 implementation of LISP that runs on the JVM... 174 implementation of LISP that runs on the JVM.
176 175
177 176
178 177
179 178
180 179
181 180
182 181
183 182
184 183
185 184
186 185
187 186
188 187
189 188
190 189
191 190
192 191
193 192
194 193
195 194
196 195
197 196
198 197
199 198
200 199
201 200
202 201
203 202
204 203
205 204
206 205
207 206
208 207
209