-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathChangeLog
534 lines (482 loc) · 27.7 KB
/
ChangeLog
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
### CHANGELOG FORMAT:
yyyy-mm-dd Your Name <[email protected]>
* file ( method in file ) : changes.
###
2021-06-18 Inge Wortel <[email protected]>
* examples/build-examples/simulation-files/SuperCell.js : fixed it so that custom classes are
properly handled;
* examples/build-examples/simulation-files/Template.js : now contains a section
for custom classes;
* examples/build-examples/write-html.bash : handles custom class section
* examples/build-examples/write-node.bash : handles custom class section
2021-06-18 Inge Wortel <[email protected]>
Merged PR from Oane Gros, changes including:
* src/grid/GridManipulator.js : new method divideCellTorus for cell division on a
torus grid; tests still need to be written.
* examples/build-examples/SuperCell.js : new example with several custom classes
implementing a cell with several subcells.
2021-05-26 Inge Wortel <[email protected]>
* major overhaul of the way the website is built; see DOCS-README
* update in how examples are generated.
2021-05-12 Inge Wortel <[email protected]>
* spec/hamiltonian/PersistenceConstraintSpec.js : added test for bug
where celldirections became NaN if the cell didn't move (due to
normalization on length = 0). This inactivated the
PersistenceConstraint for that cell for all future steps.
* src/hamiltonian/PersistenceConstraint.js : fixed abovementioned bug;
new version checks for NaN cell directions and assigns cells a new
random direction whenever this occurs (i.e.: when the cell has a
displacement of zero, it has stopped and also has lost its persistent
memory so it can take a new direction).
2021-05-10 Inge Wortel <[email protected]>
* merged PR from Oane Gros to allow simulations of evolutionary CPMs.
This adds a new model class CPMEvol, which extends the CPM and tracks cells
explicitly using a new class "Cell". Demonstrated in the stochasticCorrector example.
* bumped version number up to reflect this addition.
* restructured the 'benchmarks/' directory (see its Makefile) to allow easy comparison
in performance between two versions of the artistoo-cjs.js file.
2021-03-26 Inge Wortel <[email protected]>
* Updated docs with an example of how to color cells by cellID
* src/models/CPM.js : reset() fixed bug in resetting cellvolume property.
2021-03-08 Inge Wortel <[email protected]>
* examples/build-examples/ : merged new way of auto-generating examples. Workflow is
still the same using the Makefile, only the scripts now work somewhat differently.
2021-03-05 Inge Wortel <[email protected]>
* src/converter/ArtistooImport.js : readPixelsByCell() method gave problems after
sim.initializeGrid() called twice; this is because of faulty stats caching. For now,
fixed inside Simulation and CPM classes (see below).
* src/models/CPM.js : reset() method now also clears cache.
* src/simulation/Simulation.js : initializeGrid() now first calls C.reset().
* spec/simulation/SimulationSpec.js : now has a test for the abovementioned bug.
2021-03-04 Inge Wortel <[email protected]>
* src/grid/Grid.js : added method correctPosition(), a convenience function
to 'wrap' a position that falls outside the grid dimensions back onto the grid
when torus = true. Used by some methods in the GridManipulator.
* src/converter/ModelDescription.js, src/converter/ArtistooImport.js,
src/converter/ArtistooWriter.js, src/converter/Writer.js, src/converter/MorpheusImport.js,
src/converter/MorpheusWriter.js : new classes added for Artistoo-other framework
conversion.
* src/grid/GridManipulator.js : method killCell() updated to make it independent of
the PixelsByCell stat (more robust because of caching).
* src/grid/GridManipulator.js : method seedCell() changed != logic to !==.
* src/grid/GridManipulator.js : replaced method makePlane with new method
makeLine; old method still exists as a pointer for compatibility. New method
uses parameters in a more convenient order.
* src/grid/GridManipulator.js : new methods makeBox() and makeCircle() return
arrays of pixels in a rectangle (3D:box) or circle (2D: sphere), to seed cells of
a given geometry (works like makeLine, or the old makePlane).
* src/grid/GridManipulator.js : renamed changeKind() to assignCellPixels(), a method
that now also allows users to add pixels to a predefined cellid. Old method still
exists as a pointer for compatibility.
* src/models/CPM.js : added attribute isCPM to check from outside if an object is a CPM.
* src/models/CPM.js : new method reset() to empty the grid of cells all at once, and
reset the time to 0.
* src/models/CPM.js : new method getAllConstraints() for convenience, returns names
of all the constraints currently in the model.
* src/models/CPM.js : in method setpixi(), bugfix: if trying to set a pixel to the
value it already has, return immediately (otherwise the method makes some unjustified
changes that can cause weird errors, such as cellKinds that are suddenly undefined).
A test for the bug has been added in spec/models/CPMSpec.js.
* spec/models/CPMSpec.js : added test file
* spec/grid/GridManipulator.js : slight restructuring, and added test for killCell().
* src/simulation/Simulation.js : added attribute 'isSimulation' to check easily from
outside if object is a Simulation.
* src/simulation/Simulation.js : constructor now takes as an optional extra argument
in config an array of extra constraints to add; this is equivalent to adding them
with sim.C.add(), but this ensures that they are added *before* initializeGrid() is called.
The constraint array is stored as this.constraints, and each constraint is added by
the constructor calling the new addConstraints() method.
* src/simulation/Simulation.js : custommethods now stored as attribute so that they
can be checked by the converters.
2020-08-28 Inge Wortel <[email protected]>
* src/DiceSet.js : fixed bug in insert and remove methods. Before, the first
element inserted sometimes failed to get removed; now its presence is checked
with hasOwnProperty to fix this issue.
* spec/DiceSetSpec.js : added test file for the bug described above.
2020-05-08 Inge Wortel <[email protected]>
* docs : Big update to the website. Home page and examples page are now in
misc/ folder and copied to the docs/ folder by the Makefile, after esdoc
auto-generates the manual and documentation pages.
* mytemplate : folder with template for esdoc, to have a manual header.
* manual : new tutorials written.
2020-05-01 Inge Wortel <[email protected]>
* All files: changed CPMjs to Artistoo.
* src/grid/Grid.js, src/grid/Grid2D.js, src/grid/Grid3D.js : added warning
about torus = false to the relevant docs.
* examples: added NoTorusDemo to show how to deal with a grid without torus.
* spec/hamiltonian/PerimeterConstraintSpec.js : added test for constraint
working when added to a non-empty CPM.]
* src/hamiltonian/PerimeterConstraint.js : fixed bug so now works when added
to non-empty grid.
* spec/grid/GridManipulatorSpec.js : added test that seedCellAt throws an
error when it tries to seed outside of grid.
* src/grid/Grid.js : added a method checkOnGrid(p) to check if pixel p is on
the grid, and throw an error if it is not.
* src/grid/GridManipulator.js : seedCellAt() method first calls checkOnGrid(p)
before attempting to seed.
* src/simulation/Simulation.js : now doesn't crash when ACTCOLOR not specified.
* spec/simulation/SimulationSpec.js : tests that simulation doesn't crash if
ACTCOLOR is not specified.
2020-01-08 Inge Wortel <[email protected]>
* spec/CanvasSpec.js : adding tests for the Canvas for the bug that prevented
drawing on CA grids.
* spec/Canvas.js : ensured that methods drawCells, drawOnCellBorders,
drawCellBorders do something when applied on a CA model.
2020-01-07 Inge Wortel <[email protected]>
* src/Canvas.js : added function to draw pixels on CA grids, as the altered
drawCells function no longer worked for CA.
2020-01-03 Inge Wortel <[email protected]>
* misc : added this folder for some helper scripts etc, and moved some
stuff here.
* misc/fix-docs.bash : the ESDOC parser that converts markdown to html
doesn't recognize iframes and displays code blocks weirdly if they overflow.
This bash script fixes that.
* src/simulation/Simulation.js : slight change so that SHOWBORDERS is no
longer an obligatory argument in conf (defaults to false now).
2020-01-02 Inge Wortel <[email protected]>
* manual : added a folder to write a manual (automatically via ESDOC).
Write manual here and add the required pages to .esdoc.json for the index.
* manual/index.md : added.
* manual/installation.md : added
* manual/quickstart.md : added.
2020-01-01 Inge Wortel <[email protected]>
* spec/grid/Grid3DSpec.js : added this file with tests for neighi and
pixelsi methods on the 3D grid.
* spec/grid/Grid2DSpec.js : extra tests added: testing neighborhoods for
specific cases.
* spec/grid/GridExtensionSpec.js : doc-blocks only.
* build : updated
2019-12-31 Inge Wortel <[email protected]>
* spec/grid/GridExtensionSpec.js : added a file of tests that should be
met for any grid subclass. It also has a section of tests that only need
to be fulfilled by grid subclasses that implement diffusion.
* src/grid/Grid.js : minor changes in the errors thrown.
* src/grid/Grid2D.js : minor changes in docs etc.
* spec/grid/Grid2DSpec.js : rigorous tests for neighborhood and gradient
methods added.
* build : updated.
2019-12-30 Inge Wortel <[email protected]>
* Added a copy of the fpsmeter package to the right folder in the examples
folder to fix a problem with the 3D examples not working.
* .eslintrc.js : added compatibility with jasmine (for the WebStorm editor).
* .esdoc.json : set up the config so that also an overview of tests is
listed, and a link to the github repo.
* spec/LocalConnectivityConstraintSpec.js : Updated doc blocks to link tests
to the documentation with the @test tag. Minor bug fixed.
* examples/build-examples/Makefile : set up automatic generation of node
scripts with short burnin & runtime for rapid automatic testing of all the
examples.
* Makefile : split testing procedure (target test-all) into jasmine spec
tests and separate testing of the examples.
2019-12-29 Inge Wortel <[email protected]>
* spec/grid/GridSpec.js : tests added for the Grid superclass.
* app/include-list.txt : Grid superclass added to the build so it can
be tested more easily.
* src/grid/Grid.js : errors added when methods are called that should be
implemented in the subclass but haven't been. Added setter/getter for the
private pixels array so that an error can be thrown when this is undefined.
Check for negative/floating point values when grid is Uint16, because this
gives weird bugs if you try to set such a value on the grid.
* src/grid/Grid2D/3D.js : save datatype as a grid property so the
isValidValue method knows which values are valid on a grid instance.
* spec/LocalConnectivityConstraintSpec.js : Updated tests.
* src/hamiltonian/LocalConnectivityConstraint.js : Updated docs.
2019-12-20 Inge Wortel <[email protected]>
* src/hamiltonian/SoftLocalConnectivityConstraint.js : changed code so that
the neighborhood type used to compute connectivity can be changed through
the conf object (NBH_TYPE key).
* spec/hamiltonian/SoftLocalConnectivityConstraintSpec.js : added tests for
this constraint.
* src/hamiltonian/SoftLocalConnectivityConstraint.js : added this version of
the local connectivity constraint, where copy attempts disrupting
connectivity are not forbidden explicitly but strongly discouraged via a
large deltaH penalty.
* spec/hamiltonian/LocalConnectivityConstraintSpec.js : added tests for this
constraint.
2019-12-19 Inge Wortel <[email protected]>
* spec/ : Set up interface for automated testing using jasmine, where tests
go in this folder.
* spec/grid/GridSpec.js : initial tests for the Grid.js superclass.
* spec/hamiltonian/LocalConnectivityConstraintSpec.js : initial tests for
the local connectivity constraint.
* src/hamiltonian/LocalConnectivityConstraint.js : added this constraint.
2019-12-17 Inge Wortel <[email protected]>
* docs : updated.
2019-12-13 Inge Wortel <[email protected]>
* README.md : Added tumor infiltration example to the list.
* docs/index.html : Tumor infiltration example is now in here too.
2019-12-09 Inge Wortel <[email protected]>
* Set up github pages for this repo.
* README.md : small changes.
* examples/ : examples html folder restructured so it doesn't depend on
any other folder and can be copied into the docs.
2019-12-02 : Inge Wortel <[email protected]>
* README.md : Added cancer invasion example to the docs.
2019-11-30 Inge Wortel <[email protected]>
* README.md : fixed mistake in example code.
* examples/ : imgrate in the examples set to 1 so that ffmpeg works.
* examples/ : CancerInvasion example added.
* LICENSE : created an MIT license.
* docs/ : updated and added to the repo.
2019-11-29 Inge Wortel <[email protected]>
* README.md : Added more examples and fixed it so that this now works
directly from the README, as well as from docs/index.html
* src/hamiltonian : removed experimental constraints and updated
documentation.
* docs/ : updated documentation.
* Removed several old files.
* simulation-examples : removed this directory and restructured it into
examples/.
* src/models/GridBasedModel.js : replaced mersennetwister by
mersenne-twister, an MIT licensed version.
* examples/3D/ : 3D examples added.
2019-08-21 Inge Wortel <[email protected]>
* src/grid/Grid.js : The torus property is now an array with a boolean
value for each dimension separately. It is therefore now possible to have a
torus in x dimension, but not in y-dimension. Methods listening to the torus
are also compatible with this update now.
* src/grid/Grid2D.js : Made neighborhood computation compatible with new
specification of the torus property.
* src/grid/Grid3D.js : idem.
* src/grid/CoarseGrid.js : is now an extension of the Grid2D class so that
neighborhood methods are also available when a CoarseGrid is supplied to a
Canvas.
* src/grid/GridManipulator.js : now also compatible with the new way of
specifying a torus.
* docs : removed from git for now because it's annoying. Type 'make docs' to
create them locally.
* src/hamiltonian/ChemotaxisConstraint.js : updated jsdoc example code with
new torus syntax.
* src/hamiltonian/ProtrusionConstraint.js : updated with new torus syntax.
* src/hamiltonian/PreferredDirectionConstraint.js : updated with new torus syntax.
* src/hamiltonian/AttractionPointConstraint.js : updated with new torus syntax.
* src/hamiltonian/PersistenceConstraint.js: updated with new torus syntax.
* src/models/CPM.js : updated jsdoc comments with new torus syntax.
* src/models/CA.js : updated jsdoc comments with new torus syntax.
* src/models/GridBasedModel.js : made compatible with new torus syntax.
* src/simulation/Simulation.js : centroid computation now compatible with
new torus syntax.
* src/stats/CentroidsWithTorusCorrection.js : now compatible with new torus
syntax, performing
the correction only in the necessary dimensions.
* src/stats/CellNeighborList.js : updated jsdoc example with new torus syntax.
* src/stats/Centroids.js : included check for torus and warning not to use
this stat if there is.
* examples/* : made compatible with new torus syntax.
* simulation-examples/* made compatible with new torus syntax.
2019-08-20 Inge Wortel <[email protected]>
* src/simulation/Simulation.js : change in default drawing method for cells
on the grid.
* src/Canvas.js : Changed method to draw a chemokine field, which now uses
transparency
and a color of choice rather than only the default red-on-black color.
* README.md : Added some links to examples. Note these only work when
opening this file
from the docs/index.html.
* src/hamiltonian/SoftConnectivityConstraint.js : Added soft connectivity
constraint (experimental).
2019-08-19 Inge Wortel <[email protected]>
* src/hamiltonian/ConnectivityConstraint.js : Added connectivity constraint
(experimental).
* src/Canvas.js : Added method to draw contour of chemokine field.
2019-08-08 Inge Wortel <[email protected]>
* docs : documentation now almost finished. Many src files have been
modified to include esdoc syntax for automatic documentation (doxygen-like).
Open the docs from docs/index.html. If functions change, the associated
documentation should from now on be changed as well. Note that I have
defined some special variable "types" (red entries in the left menu in
docs/index.html) that should be used in the documentation when
appropriate. Use "make docs" to update documentation.
* old : new folder for old implementations that don't have to be in the
build anymore.
* old/AdhesionMultiBackground : moved from src/hamiltonian/... because
this constraint doesn't really work.
* src/grid/grid-typedef.js : file with some esdoc @typedefs associated with
the grid.
* src/grid/models/model-typedefs.js : file with esdoc @typedefs associated
with the models.
* src/grid/stats/stat-typedef.js : file with esdoc @typedefs associated
with stats.
* src/grid/hamiltonian/constraint-typedef.js : file with esdoc @typedefs
associated with constraints.
* src/hamiltonian/ParameterChecker.js : moved confCheck functions from
Constraint.js to this new class, and changed the functions so that they
are more structured. See the documentation for usage.
* src/stats/CellNeighborList.js : new stat ported from the old Stats class,
but hasn't been properly tested yet.
* src/stats/BorderPixelsByCell.js : new stat.
* build-makeout.bash : keeping track of the makefile dependencies
automatically didn't really work, so now this script just makes a special
makefile to handle the dependencies.
2019-08-05 Inge Wortel <[email protected]>
* app/automatic-index.bash : script automatically generates app/index.js
from a standard file app/include-list.txt. This ensures that both the
Makefile dependencies and the app index can be kept up to date from a single
file. See app/include-list.txt.
* app/include-list.txt : file that keeps track of which modules are used in
the build, and which should be exported. See this file for the format.
* Makefile : app/index.js and makefile dependencies now kept up to date
automatically from app/include-list.txt.
* src : Moved all source code into a folder src/. This will help generating
automatic documentation using esdoc.
* app/index.js : Fixed the new paths using the src folder.
* Makefile : Fixed the new paths using the src folder.
* node_modules : installed "esdoc": "^1.1.0" and "esdoc-standard-plugin":
"^1.0.0", and these are added to package.json.
* docs : Added documentation using esdoc (not finished yet, but accessible
from docs/index.html)
2019-08-01 Inge Wortel <[email protected]>
* hamiltonian/AdhesionMultiBackground.js : Added a new form of the adhesion
constraint, where a set of pixels on the grid is given different parameters
when it is background.
* hamiltonian/ActivityMultiBackground.js : Idem for the Act model. This
allows building adhesive micropatterns on the substrate for the cell to
move on.
* simulation-examples : new examples added for the GameOfLife CA, and one
for the micropatterned substrate.
2019-07-16 Inge Wortel <[email protected]>
* grid/GridManipulator.js : reset stats after cell division, because
the cellpixels stat is out of date
* models/CPM.js : added a method getConstraint() to retrieve a
constraint by name. This is useful for drawing methods that need
attributes stored in the constraint object.
* simulation/Simulation.js : Made compatible with the new version of
the CPM in which constraints are added automatically.
* simulation-examples/new-simulation.bash : changed this so that
it now works differently. Run with
"bash new-simulation.bash <simulation-name>",
which will produce a file simulation-files/<simulation-name>.js
that serves as a template for the html/node files.
This file is produced from simulation-files/Template.js, and contains
both configuration object and custom code for that simulation.
See the provided examples for details. After editing the template in
simulation-files/<simulation-name>.js, type "make" from the
simulation-examples folder to produce the html and node files.
* simulation-examples/write-example-html.bash and write-example-node.bash
have been adjusted to use the new method.
* simulation-examples/Makefile : this now contains a target
"test-node-examples", which runs all the examples in the
simulation-examples/node folder, to see if they work without any errors.
2019-07-18 Johannes <[email protected]>
* PreferredDirectionConstraint.js: Renamed to to PersistenceConstraint
* Constraint.js: confChecker no longer obligatory as this makes implementing
new custom constraints unnecessarily bureaucratic. Instead the method will
be called when available.
2019-07-13 Inge Wortel <[email protected]>
* hamiltonian/ActivityConstraint.js : changed the name of the old version
to hamiltonian/ActivityConstraintOld.js and the name of the new version
to hamiltonian/ActivityConstraint.js, and updated app/index.js and Makefile
accordingly. For the difference between those two versions, see entry of
2019-03-09 in this ChangeLog.
* I have now made it obligatory for every constraint to implement a
confChecker() method, which checks if the required configuration parameters
are actually present in the supplied conf object and have the right format.
See the code in the main Constraint.js class for some default checker methods
that should be usable for most constraints you can imagine. Note that some
examples may not work right now if the nCellKinds is not present in the conf.
2019-07-12 Inge Wortel <[email protected]>
* stats/CentroidsWithTorusCorrection.js : fixed it so it works now.
* simulation/Simulation.js : added a class for setting up a simulation
that removes a lot of the boilerplate code. Still trying to work out
what should and should not be in there by default, but it's a start.
* simulation-examples : started a new folder for examples generated
using simulation classes. This way, the node and html examples can be
generated automatically from a single file. To do this, call
'bash new-simulation.bash' <mysim> <basic/custom> from the
simulation-examples/ folder. This will set up a new config file in
simulation-files, which you can then edit. It will also add the simulation
to the Makefile. If <basic>, the StandardSimulation.js class is used;
otherwise, the boilerplate code for a new class is generated in <mysim>.js.
You can then adjust the config and class files, and type 'make' to
produce the node/html examples.
* simulation-examples/Makefile : This automatically generates a node and
html version of each example.
* simulation-examples/write-example-html.bash : Writes an html version
of a simulation.
* simulation-examples/write-example-node.bash : Writes a node version
of a simulation.
* simulation-examples/new-simulation.bash : Sets up a new simulation
which you can then edit. See above.
* simulation-examples/simulation-files/Microchannel.js : example
of creating a Microchannel simulation.
* simulation-examples/simulation-files/Microchannel-config.js : configuration
for the Microchannel simulation.
2019-07-09 Johannes Textor <[email protected]>
* grid/GridManipulator.js : Added this new class, and removed the
existing "GridInitializer" class. There seems to be no good reason
to let these be two separate classes.
* examples/cancer-invasion.js : Made this example work as it was,
but now without the separate "CPMChemotaxis" class which will be
removed soon.
2019-07-04 Inge Wortel <[email protected]>
* hamiltonian/BarrierConstraint.js : new hard constraint to replace
the "stroma" celltype in the previous version. Basically, this
constraint sets one cellkind as "barrier" cellkind. Copy attempts
from or into pixels with this cellkind are forbidden. Which cellkinds
are barrier are defined in the conf object in the IS_BARRIER array,
with a boolean value for each cellkind.
* grid/GridInitializer.js : added functions to define a plane on
the grid and to set all pixels in that plane to a certain cellkind.
This can be used to build microchannels, for example.
2019-03-20 Johannes Textor <[email protected]>
* stats/PostMCSStats.js : new class for parameters that can be
computed after each Monte Carlo steps. Includes an event listener that
converts the CPM class's internal pixel representation to a more
convenient format allowing direct access to cell pixels. This should
prevent us from calling this method over and over again like in
previous versions.
Moreover, I have improved the centroid computation when there is a
torus. There is now a simpler algorithm that relies on the same
assumption and does not require us to compute connected components.
I removed all methods that now have an implementation in this file
from Stats.js and TODO: Stats.js should no longer exist in the future.
* hamiltonian/PreferredDirectionConstraint : new constraint that
implements Beltman-style directional persistence. Includes a
parameter that controls the amount of angular diffusion.
* examples/many-cells.html : new example showcasing the persistent
direction constraint
2019-03-10 Johannes Textor <[email protected]>
* examples-node/ : changed all examples to new syntax
* benchmarks/ : new folder with simple scripts for benchmarking the
framework
* CPM.js : simplified border updating code, yields ~3-4fold speedup
for 3D simulations.
2019-03-09 Johannes Textor <[email protected]>
* examples/ : changed all examples to new syntax, added perimeter
constraint where missing
2019-03-09 Inge Wortel <[email protected]>
* hamiltonian/ActivityConstraint2.js : Added new implementation of the
activity constraint that directly tracks activity values in an object
instead of their birth time. This implementation should be more efficient
because pixels are removed once their activity reaches zero.
!!! We may want to make a test that checks if two implementations do the same
thing?
* app/index.js : use ActivityConstraint2.js instead of ActivityConstraint.js
for the build.
* examples/actmodel.html : fixed bug because of change in CPM.js file. Added a
perimeter constraint to the cell.
2019-03-09 Johannes Textor <[email protected]>
* hamiltonian/Constraint.js : new base class for all constraints
* CPM.js: renamed addTerm to simply "add" -- we may want to add other
things like loggers, trackers, drawing functions. Also fixed bug in
cellBorderPixels
* hamiltonian/PersistenceConstraint.js : works now
2019-03-08 Inge Wortel <[email protected]>
* CPM.js : wrapped grid.neighi as an internal function here.
* hamiltonian/ActivityConstraint.js : Added this file.
* app/index.js : added Activity Constraint to the build.
* Canvas.js : fixed code for displaying the activity model
* examples/actmodel.html : added an example with act model (this doesn't work
properly yet, as the cell needs a perimeter constraint to stay together).
2019-03-08 Johannes Textor <[email protected]>
* CPM.js : added listener stubs for pixel changes and MCS termination
* TestLogger.js : new file for simple logging of events, to check if
this works
2019-03-08 Inge Wortel <[email protected]>
* Makefile : changed call to rollup to a direct call to the rollup binary in
node_modules, so it doesn't require a global install.
* hamiltonian/SoftConstraint.js : fixed typo in filename.
* hamiltonian/SoftConstraint.js ( deltaH ) : Disabled eslint error on
unused variables for this method.
* hamiltonian/HardConstraint.js ( fulfilled ): Disabled eslint error on
unused variables for this method.