-
Notifications
You must be signed in to change notification settings - Fork 16
ToDo list for NetLogo Lite & 3D
Owen Densmore edited this page Jan 12, 2019
·
33 revisions
- NL-Lite: asap, roughly AS0->AS2. 2D canvas, D3, Three Ortho all would be fine for 2D View.
Currently using Three Ortho, but could easily change to canvas2d or D3. "+" indicates some work done.- + Separate models/ FooModel.js from foo.js.
- + Plots: NL style dynamic time-line/histograms.
- 2D Drawing layer w/ pen up/down, stamp, import/export drawing
- Refactor util.js & modelIO.js
- + View & Web worker option. API?
- Models: Convert rest of agentscript/as-app3d to Foo.js
- ants, buttons, controller, diffuse, droplets, exit(1), linktravel, mouse, wallfollower
- 2D Labels: Separate text layer(s)?
- Control Parameters
- Order Parameters: model output; parameter sweeps; raster/vector data
- AgentKit refactor: mono-repo or multi-repo or ??
- Documentation
- + Lots more models (AS0 ports done)
- Done:
- 2D Mouse: select patch, turtle, link; drag turtles. 3D below.
- UI Controller, dat.gui
- 3D: update core for "enough" 3D. Roughly this 3 step plan.
See: https://ccl.northwestern.edu/netlogo/docs/3d.html
- Step 1: Simple Z
- x,y,z; World.js: min/maxZ, numZ, depth, etc
- direction is still simply theta, the angle in the xy plane
- World.isOnWorld(x,y) includes z
- turtle.handleEdge includes z
- include z: setxy, moveTo, handleEdge, distance, a few more
- add: inSphere, inBox/Cube
- Step 2: Ad Phi and the rest of Z relating to phi
- include phi along with theta .. angle relative to xy plane
- 'towards' includes phi; also ahead, aheadAnRight/left etc, etc.
- Step 3: Convert Views/Apps: incorporate turtle's phi in views/apps.
- Add phi to model Turtles View
- 3D Mouse picking (key navigation)
- 3D Labels
- 3D Drawing layer
- Step 4 (maybe .. add "roll"? This likely not needed in core)
- Step 1: Simple Z
- Goesinta approaches:
- Defaults Object as Class Static. Two use cases
- Ctor uses Model.defaults() as initial values, setup can change them.
- Ctor takes another object which defaults to the Model.defaults(), user can modify.
- Note that both are use in AS.
Class Patch, Turtle, Link use the first, the current ctor world object does the second
- Note that both are use in AS.
- Could revamp initialization with a single options object with everything in it. Not sure I like.
- Defaults Object as Class Static. Two use cases