-
Notifications
You must be signed in to change notification settings - Fork 3
/
TODO.txt
106 lines (97 loc) · 5.56 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
This is not intended as a complete TODO list, but it does represent
a good place to start.
In the short term, certain key user interface functionality must
still be revived or newly developed, such as:
* make windows record their position and size changes to the settings
file when they are manually moved or resized
* make dump files work again (to save state and restart the program)
* get the genetic-spread graphics working again
* switch from recording movies in my home-brewed codec and file format
to using a standard QuickTime codec and file format
* create macro equivalents for OSSwapInt16(), OSSwapInt32(), htonl(),
and ntohl(), so Linux can use the PwMovieTools
* make Polyworld work on Windows
* when an agent is killed and its carcass is to become food, it is
inserted into the x-sorted object list with add(), which searches
through the entire list to figure out where to do the insertion;
since we already know where we are in the x-sorted list (whereever
the dying critter is), we shouldn't have to do that!
An "addNear( newLink, nearLink )" function should do the trick;
it should save and restore currItem, then we can eliminate the
explicit code to do so in Interact() in Simulation.cp.
* same as above for newborn critters
* convert all window drawing to a direct Draw() method, instead of
relying on updateGL() and paintGL() (cannot depend on rigorous
synchrony between window updates and simulator time-steps otherwise);
main, critter POV, and brain windows are already converted
(confirm best option here first, as Linux appears to have a problem
with these direct draws)
* record all (or a specifiable subset of) Polyworld windows, using the
new PwRecordMovie/PwMoviePlayer tools (they used to all be embedded
in a single effective window--the entire Iris screen--but are now
multiple windows that need to be managed separately and kept in sync)
* make a click on a critter highlight its POV sub-window (new)
* make a click on a POV sub-window highlight the critter (new)
* make clicks in either place select that critter for brain and overhead
monitoring (new)
However, the core, scientific simulation engine is fully functional,
I believe. Longer term goals involve the use of information-theoretic
measures of complexity to assess the neural network dynamics, and,
in turn, to use such measures of complexity as a fitness function
to drive evolution more rapidly (than pure natural selection) towards
neural systems with greater effective intelligence. Besides measuring
and using complexity in this formal sense, the complexity, now in an
informal sense, of the environment itself will need to be increased
by means such as:
* make food grow in an organic fashion, instead of randomly
* allow organisms to pick up and put down pieces of food
* allow organisms to pick up and put down pieces of barrier
* introduce multiple food types and let an organism's genes
determine how much it needs of each type
* introduce geographic trade-offs between energy consumption
and energy availability
And so on, with all such extensions geared towards providing more
available niches to foster speciation or to provide mechanisms that
enhance the evolutionary usefulness of collaboration.
-------------------------------------------------------------------
Recently done:
* make the main view's camera rotate again
* set up to get email on cvs commits (improved x7 - use activitymail)
* write status file again
* fix bug in PwMoviePlayer that results in disembodied, unpopulated little
MenuBar floating at the top-left of the window (no idea where that's
coming from currently)
* get the digital movie recording and playback revived (from rev20 or rev21)
* brain map window won't close when close button is clicked
(selecting Hide Window from the Window menu works fine)
* fixed colors of population graphs
* fixed bug in smite option (had to be updated on critter death, with
new on-demand behavior)
* add "smite" option so that when the world fills up (to its maximum
number of critters), the least fit (that are over 1/2 their maximum
lifespan) can be killed to make room for organisms that want to
reproduce 5/31/05
* put the Xcode shell script phase into its own target, so it completes
and generates new moc files (or not, as needed) before the dependencies
are analyzed for the main Polyworld target 5/31/05
* add code to dump neural net anatomical and functional data for
network analysis using Olaf Sporns's tools
* fixed a couple massive memory leaks (all known memory leaks are fixed!)
* made it so the gene separation isn't calculated unless it's needed
* made it so the miscegenation function is easily turned off
(by setting misccritters to -1 in the worldfile--that's the way it's
now checked in)
* added frame rates (instantaneous, recent, overall) in both frames/second
and seconds/frame to the text status window
* get the brain monitor window actually working
* get the strip of vision pixels back in the brain monitor window
* fix the ChartWindow's behavior - results do not seem to be averaged into
the first half after the second half fills, and the second half is not
cleared before points start being plotted into it again (after filling)
* change the neural group layout so output/behavior groups are at
fixed indexes, regardless of how many internal neural groups
exist, so connections to outputs can remain undisturbed as
evolution alters the number of internal groups and their connections
* get the overhead view working again
* get zoom working in the overhead view
* allow overhead critter following (and toggle on/off, and set fitness rank)