Comments (3)
Have in state a dict of which simulators are loaded. In the late bound import promise resolver set that that simulator name is loaded which allows the selector to go ahead and expand it in other selectors like selectCurrentSimulator. The main class should have a .renderer constructor that can be used as the entry point for the renderer (make sure it doesn't constantly recreate the object, which would losing data bind state)
Frame visualizer should pass itself to the renderer constructor. And renderer constructor (in base class) should have a weak map of frame visualizer to instance of its renderer (that will allow multiple renderers of the same simulator without thrashing)
Since we'll be loading variable named imports we'll need to programmatically generate the polymer.json with extra entry points, since the auto generation I think relies on static analysis of import statements (likely in the same gulp tasks as the one to enumerate the JSON directories to show a loading affordances for)
from cassim.
Will also need a gulp build-listings
that enumerates all valid simulationNames at build time, so they can be shown in the dropdown UI. Similar to the need for enumerating all of the valid data.json files in the data directory for that drop down
from cassim.
- Make it so name is provided by the class
- Make it so renderer is on class
- Make it so frame-vizualizer is passed the simulation object and figures out which renderer to use base don that
- Do the memoizedRenderer method
- Actually use the renderer to render in frame-visualizer
- Keep track of imported simulators
- Stop doing a manual import for all simulators, only load up the ones on demand. (verify bundling works)
- Document that you have to add a renderer to polymer.json
- The bug is that the es6 bundled fragment doesn't export a default module, but rather $schellingOrg, $schellingOrgDefault
- A
gulp deploy
that builds and firebase deploys - A
gulp generate-config
that does all static config generation - updateCurrentSimulationOptions also needs to rerun the 'load required imports'
- A
gulp build
that does the generate polymer-json and then a polymer-bulid - There's a race condition where slow-loading simulators lead to weird URLs that get things wedged (e.g. a number)
- Have the polymer.json be updated automatically to add extra entrypoints for all entrypoints in simulators directory
- Also generate a
src/LISTING.json
that has the simulator names in it - Polymer.json also includes listings.json
- Have the drop down in simulator names based on the autogenerated simulators names based on loading src/LISTING.json
from cassim.
Related Issues (20)
- Fix some defaults in distribution.ts
- Share constants between screenshot and main app HOT 1
- Allow sub-type generation in the `npm run generate:types` pipeline` HOT 1
- Created a SimulatorSimOptions and SimulatorNormalizedSimOptions
- Speed up `npm run generate`
- Fix `npm run tests` HOT 1
- extractOptionsConfigForSimulator should use `ts-node`
- Schema should have simOptions descriptions HOT 1
- `npm run build` broken HOT 2
- Fix dialog rendering in production
- Create a moving agents simulator
- Create a good starting point stub HOT 1
- handle wraparound of map HOT 1
- Have a QuadTree adjacency map HOT 4
- Allow interactive simulations
- Make much more extensive use of generics HOT 1
- Do a gravity well simulator
- Do a model about deeper and deeper ruts
- Do a model about coordination costs and thrash in an org
- Do a model about switching to a better approach
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cassim.