Git Product home page Git Product logo

dawn's People

Contributors

auberdream avatar edpe avatar jenniferemshepherd avatar rcvink avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

auberdream

dawn's Issues

Create a cell object

This may be from a cell factory or the object itself. Probably worth discussing ๐Ÿ™

logo

project logo for favicon

Have gait return a vector

Currently it returns a number. Returning a vector could make the animator simpler and make future modifications easier - what do people think?

Cells can fight

Nobody assigned initially as we'll address this tomorrow.

Install poly-decomp.js

This would help prevent the warnings in the console, and would result in more successful reproductions.

Pass objects to constructors

We could pass more of our objects to the constructors of other modules.

For example, in our dawn.js, we are doing this:

var decoratedEngine = new DecoratedEngine();
var eventController = new EventController(); 
var cellRepository = new CellRepository();
var animator = new Animator();
eventController.register(decoratedEngine.matterEngine(), 'afterUpdate', animator, cellRepository);

but it might be better if we could do this instead:

var decoratedEngine = new DecoratedEngine();
var eventController = new EventController(decoratedEngine.matterEngine()); 
var cellRepository = new CellRepository();
var animator = new Animator(cellRepository);
eventController.register('afterUpdate', animator);

In other words:

  • the instance of Animator could have a cellRepository.
  • the instance of EventController could have an engine.

That way we don't have to pass these objects in every time we call methods. See how the eventController.register method now only needs two arguments - an event string and a listener/handler/operator. Instead of also passing in an engine every time we register a listener (I've started calling them listeners now I'm afraid). A similar simplification is achieved by having the animator have its own cellRepository, instead of passing that as an argument.

A similar pattern could be followed for the cellFactory stuff. I.e. cellFactory could have a cellRepository. This would have the same benefit if we use our eventController to register a listener for collisions.

I think we we were concerned that we'd have to update each object's cellRepository if we do things this way (I know I was). But actually, this is why we pass objects in, instead of static arrays - so that these objects are updated across the entire app.

decrease height of canvas size and increase width

currently it looks overcrowded on a normal laptop screen. I remember we mentioned that this was the size we were making the app for. Might be worth doing the above! Let me know if ok with yall ๐ŸŽ†

create cell factory

We need a class that creates cells, with bodies and whatever other properties they need (e.g. gaits, etc).

Presentation

  • basic structure
  • allocation sections
  • slides
  • demo video
  • practice

create cell repository

we need somewhere where cells are stored so we can iterate through an array of cell objects in simulation.listenForUpdate rather than just cell bodies

create event controller

We need a class that registers listeners.

In the short term, this could be used to register a listener so that after each update of the engine, the cells have forces applied to them.

In the future, this could be used to register a listener so that after each collision between cells, a new cell is created.

remove sandbox testing environment

from now on we should use dawn.js for spiking/feature testing/etc.

this will ensure a consistent environment is used for manual feature testing.

create walker

We need a class that applies forces to all of the cells in the cell repository

Naming of cells

Can one of the cells be named, Potent Billy Bookcase?

Really think this would add to the project, happy to discuss!

Cells can die

Possible new CellReaper class

removes cells from both Cell Repo and world when cell age reaches predefined value

Create renderer in simulation.setup()

I noticed we are executing the following line in our dawn.js:

decoratedRenderer.createRender(decoratedEngine.matterEngine());

Perhaps this is something we should do in the Simulation.setup() method? What do people think?

Initial Setup

  • choose dependencies and install
  • update README.md to document how to do so

buttons for user interaction

Maybe some buttons would be nice to have for the user to have basic interactions after the simulation is running?

For example, they could be something like:

  • Start
  • Pause
  • Stop
  • Restart

What does everyone think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.