Skip to content

ToDo list for NetLogo Lite & 3D

Owen Densmore edited this page Sep 1, 2018 · 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.
    • Mouse:
      • Done: 2D Mouse: select patch, turtle, link; drag turtles.
      • 3D Mouse: select only, keys for navigation
    • + Plots: NL style dynamic time-line/histograms.
    • 2D Drawing layer w/ pen up/down, stamp, import/export drawing
    • + View & Web worker option. API?
    • + UI/Control Parameters (dat.gui controller done)
    • Order Parameters: model output; parameter sweeps; raster/vector data
    • 2D Labels: Separate text layer(s)?
    • Refactor util.js & modelIO.js
    • Documentation
    • + Lots more models (AS0 ports done)
  • 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
      • 3D Labels
      • 3D Drawing layer
    • Step 4 (maybe .. add "roll"? This likely not needed in core)

Wed Jul 18 2018

  • 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
    • Could revamp initialization with a single options object with everything in it. Not sure I like.

Clone this wiki locally