/
TODO.txt
167 lines (148 loc) · 8.54 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
REPORTED ASSIGNED DATE DESC
[SIM]
sean 02/19/2012 agent trackers UI
larryy 03/23/2012 Record fitness, distinct from heuristic fitness (needed for jobs using
complexity as fitness, whether in combination with heuristic fitness or not).
May require two death logging events, first to trigger brain function
file closing (required to calculate complexity) and second to trigger
fitness recording (possibly in brain anatomy file, where heuristic
fitness is currently recorded, or possibly in its own datalib file).
[BUILD]
sean sean 02/10/2012 auto-discover python version
larryy sean 02/13/2012 make discovery of python executable and library more robust on Macs
[SCRIPTS]
sean sean 02/01/2012 organize scripts/.
* maybe make scripts/lib/ and scripts/bin/?
sean 02/09/2012 create one-step polyworld install script.
[DATALIB]
sean sean 01/31/2012 compressed files
[FARM]
sean sean 02/10/2012 figure out correct management of .bashrc -- remove hack in fbuild
sean sean 02/08/2012 investigate app/ per session -- utils without fbuild?
sean sean 02/08/2012 if fmvrun fails on fields, shouldn't move local data.
sean sean 02/10/2012 load-balancer/scheduler
larryy larryy 02/13/2012 have CalcMetric update the screen menu with epoch and current time (like stdout display)
sean sean 02/16/2012 mutex around window list status update
sean sean 04/10/2012 investigate mosh as ssh alternative
[PLOT]
sean sean 02/06/2012 make valueattr path encodings more concise
sean sean 02/23/2012 grayscale bin plotting
sean sean 02/24/2012 provide easy means to enumerate available stats names
larryy 03/23/2012 allow up to 10 non-color line styles by using current set
of 5 line types plus both black and dark gray (gray70?)
larryy 03/25/2012 option to color individual runs all the same as the meta-mean,
and only identify meta-means/groups in legends (possibly
make this the default if plotting both means and meta-means
with color and legends)
[PROPLIB]
sean sean 04/02/2012 Document delete not fully implemented. Tokens never deleted.
sean sean 04/02/2012 Write documentation about enums (qualification and quotes)
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
----------- OLD CONTENT ( BEFORE JANUARY 2012 ) -------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
THE FOLLOWING CONTENT IS OLD. FROM BEFORE Jan 2012.
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)