Giter Club home page Giter Club logo

matrx's People

Contributors

dependabot[bot] avatar jwaa avatar matrxs avatar mlstolk avatar thaije avatar wiardjorritsma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

matrx's Issues

Debug draw and erase functionality in new connected front-end

Issue by thaije
Thursday Jan 30, 2020 at 14:18 GMT
Originally opened as matrxs/MATRXS#30


The new HTML frontend has been connected to MATRXS in thenew-frontend branch.
Drawing and erasing works, however a few bugs emerged:

  • The draw and erase icons are missing when the icons are pressed top right
  • Drawing/erasing does not work when the mousebutton is held down. In that case only 1 tile is selected.
  • Draw objects

Dissimination package

Issue by jwaa
Wednesday Jan 22, 2020 at 12:52 GMT
Originally opened as matrxs/MATRXS#24


A dissimination package to spread information about MATRXS. This includes;

  • posters
  • flyers
  • infographics / flowcharts
  • tutorials
  • paper reference(s)
  • link to homepage
  • link to youtube channel

Overlaying object interaction

Issue by jwaa
Wednesday Jan 22, 2020 at 12:50 GMT
Originally opened as matrxs/MATRXS#22


Currently the objects in the default GUI are clickable, however only the top on can be clicked. We need a way to allow to interact with all objects at the clicked grid space.

For example when a HumanAgent wishes to pick up a certain object within range from a stack of objects on a single grid space.

Request if action is possible

Issue by jwaa
Friday Feb 14, 2020 at 09:50 GMT
Originally opened as matrxs/MATRXS#46


From within an AgentBrain, be able to request the GridWorld if a certain Action with specific arguments is possible to perform.

Should help in preventing duplicate code in checking whether a certain Action will be possible, or for AgentBrains to first decide upon an action just to see if it would succeed.

Split get_env_object function

Issue by matrxs
Tuesday Jan 21, 2020 at 13:20 GMT
Originally opened as matrxs/MATRXS#15


get_env_object now accepts ID, type and name.
Split this function into:

  • get_env_object(agent_id). Which returns 1 object (with that ID) or False
  • filter_env_objects(obj_type=False, obj_name=False). Which returns a list of objects which meet the specified criteria. No criteria returns all env objects.

[CLOSED] Robust object positioning

Issue by matrxs
Tuesday Jan 14, 2020 at 08:05 GMT
Originally opened as matrxs/MATRXS#2


Right now in the new frontend the grid is a set of aligned divs, which get their relative position from the div html position. However, in MATRXS multiple objects can occupy 1 cell in MATRXS. How can this be achieved in the new frontend?

This issue is related to when the objects are going to move. In that case, a more robust / free-floating positioning of objects seems to be required. E.g. absolute positioning?

Software flow

Issue by jwaa
Wednesday Jan 22, 2020 at 12:53 GMT
Originally opened as matrxs/MATRXS#25


Determine and document the flow on how MATRXS developers use Git, this repo, deployment, testing, issues handling and communication. These should contain clear and transparent agreements that fit our way of working without creating (too much) overhead.

Zoom/pan improvements

Issue by wiardjorritsma
Wednesday Jan 22, 2020 at 12:51 GMT
Originally opened as matrxs/MATRXS#23


Zoom tool in toolbar
User selects tool > cursor becomes zoom icon > user can zoom in grid by clicking and moving the mouse up/down.

Pan tool in toolbar
User selects tool > cursor becomes pan icon > user can pan in grid by clicking and moving the mouse left/right/up/down.

Reset zoom/pan tool in toolbar
User selects tool > zoom/pan settings are reset to default.

[CLOSED] Chat manager

Issue by thaije
Thursday Feb 06, 2020 at 15:49 GMT
Originally opened as matrxs/MATRXS#36


A manager inside the GirdWorld that tracks the received and send messages between agents and their teams. This gives us several advantages (we hope);

  • an easier connection between Core, API and Front-end for messages (e.g. to differentiate between messages send between agents and to teams in the Front-end through a simple API call: 'get_team_messages').
  • an easy way to log communication (as the messages are easily obtained from a GridWorld instance, through some methods).

[CLOSED] Tutorials on Readthedocs or on MATRX-software.com

Issue by thaije
Friday Feb 07, 2020 at 08:40 GMT
Originally opened as matrxs/MATRXS#38


We have two types of documentation:

  • Full documentation of every function within MATRX, with required arguments etc. This documentation is automatically generated with SPHINX, and put on matrxs.readthedocs.io.
  • Tutorials and other manually created guides. E.g. the installation guide.

The question is if we want to create and show the tutorials and guides also on matrxs.readthedocs.io, or expand our normal website and add them there. The differences are:

on readthedocs

Pros:

  • Aside from creating the tutorial itself, including a new tutorial page on the readthedocs website is easy.
  • Makes sense to put it together with all other documentation.
  • Easy making links to functions in the code (in theory).
  • Easy for unknowns to contribute by creating tutorials: people can create new tutorials and request a merge-request, as such adding it to our readthedocs.

Cons:

  • Have to write tutorials in rst format, which is a type of non-intuitive markdown.
  • RST is horrible, so less likely for community to build tutorials which can be added to our readthedocs.

Examples:

on our own website

Pros:

  • Easy to add new pages in a website with a backend, such as Wordpress or something similar.
  • Ability for people to post comments on tutorials
  • More freedom in styling the tutorials or adding extra content.
  • Can pass people a low-permission account, that can only add tutorial pages (requiring approval before being posted).

Cons:

  • Have to expand our one-pager website to use something such as Wordpress.
  • Linking to code functions (on matrxs.readthedocs.io) has to be done manually, and is thus more tedious.
  • Adding community tutorials to our site requires us to manually create a low-permission user account, or manually copy paste the tutorial (with permission).

Examples:

  • OpenAI Gym, although OpenAI seems to user their normal website only.

Refactor ActionResult

Issue by jwaa
Friday Feb 14, 2020 at 10:22 GMT
Originally opened as matrxs/MATRXS#50


Currently the string representing the reason of an action's fail or success is ActionResult.result, it is more transparent to refactor this to ActionResult.reason.

[CLOSED] Connect chat functionality

Issue by thaije
Thursday Feb 06, 2020 at 10:36 GMT
Originally opened as matrxs/MATRXS#35


  • Initialize Add button listing all possible agents to chat with on startup
  • Add chatmessage manager in MATRX
  • Create chatmessage manager API handle
  • Push new messages from MATRX to frontend
  • Dynamically add new messages / message groups
  • Notification for messages in un-opened chat rooms
  • Load all known messages on page load
  • Fetch all messages from the server on page load
  • Initialize chat groups and chat messages on pageload
  • Connect sending message in frontend to backend

Seperate thread for writing log files

Issue by matrxs
Tuesday Jan 21, 2020 at 10:04 GMT
Originally opened as matrxs/MATRXS#13


Right now, when running many MATRXS worlds concurrently for applications which require many simulations, a slowdown seems to be the sequential writing of log outputs to disk. This is especially true for TNO laptops, for which the harddrive is encrypted and i/o executions are quite slow.
To solve this, writing log files might be performed in a separate thread which is killed / joins the maintrhead when done.

Set tick duration in frontend

Issue by thaije
Thursday Jan 30, 2020 at 14:45 GMT
Originally opened as matrxs/MATRXS#33


In the front-end we don't have a slider or something similar for changing the tick duration. Is this still a feature we would like to have?
The API functionality supports this feature, so it would purely be adding a slider to the frontend.

@wiardjorritsma @jwaa what is your opinion on this?

Add markdown support for the documentation

Issue by matrxs
Tuesday Jan 21, 2020 at 08:31 GMT
Originally opened as matrxs/MATRXS#12


Markdown is an easier and more intuitive method of writing Richt Text, compared to the RichStructuredText (.rst) format. Markdown is also often used for wiki's and readme's of code repositories.

As such, it would ease the creation of new documentation pages a lot if markdown was supported.

Action parameters in header

Issue by jwaa
Friday Feb 14, 2020 at 10:19 GMT
Originally opened as matrxs/MATRXS#48


Some Action.mutate(...) and Action.is_possible(...) assume a certain parameter in **kwargs or otherwise set it do a default in the method's body. These should be ported to the method's header.

However, careful testing should be done if this does not break anything.

[CLOSED] Create alternative logo

Issue by thaije
Tuesday Feb 11, 2020 at 13:27 GMT
Originally opened as matrxs/MATRXS#40


https://matrxs.readthedocs.io/ and the navigation bar of the MATRX frontend make use of a dark background colour. However, the letters of the logo are also dark, requiring a white square behind the logo.

As such, it would be nice to have a version of the logo with white letters, such that it works as a semi-transparent logo for a dark background.

[CLOSED] Add context-menu for objects to connected new frontend

Issue by thaije
Thursday Jan 30, 2020 at 14:32 GMT
Originally opened as matrxs/MATRXS#31


The new HTML frontend has been connected (partially) to MATRXS in the new-frontend branch.

For the new front-end, it would be nice if a context menu can be opened for any object by clicking on that object. If possible, add the html for the dropdown somewhere on the page just once, and when clicked on an agent (e.g. onClick function), call a function which fills the dropdown with options specific for that agent. This way we only require 1 dropdown html div on the entire page, which makes sense as the user can only open 1 at a time. The filling of the dropdown can be dummy content for now :)

Please also use IDs for objects that are not exactly the obj_ID (obj_ID_dropdown or something is fine), as that will break the front-end otherwise.

Document MATRX

Issue by jwaa
Friday Feb 14, 2020 at 10:10 GMT
Originally opened as matrxs/MATRXS#47


Documentation of all MATRX public classes according to the NumpyDocstring guide.

In addition, documentation of al MATRX private classes for reference to MATRX developers (but which should not be rendered by Sphinx autodoc).

[CLOSED] Object movement

Issue by matrxs
Tuesday Jan 14, 2020 at 08:13 GMT
Originally opened as matrxs/MATRXS#3


How should objects move in the new html frontend. This can be done in a number of methods:

  1. As is done now, update the position (e.g. absolute position x y value) of an object 60 times per second and moving it x pixels. Advantage is that existing code can be used, and that precise movements can be executed on screen. Disadvantage is that dom-interactions are costly, such that updating potentially hundreds of objects 60x per second is going to be slow (bu how slow?).
  2. Use CSS animations. This is much easier, as only the goal position has to be given, and a time on how long it should take to animate that change. Open issue with this again is the speed, how fast is this for hundreds of objects at high tick speeds?

Add check if custom action name is not already a default action

Issue by matrxs
Thursday Jan 16, 2020 at 13:45 GMT
Originally opened as matrxs/MATRXS#11


This happened in the AIMS project, in which the OpenDoorAction of MATRXS and a custom identically named OpenDoorAction co-existed. This lead to highly unpredictable behaviour (but no warning or error), where the agent at seemingly random times used the custom and MATRXS action version alternately.

The MATRXS OpenDoorAction was imported in the default AgentBrain, which were extended in the custom AIMS Agent, the file which also contained an import for the custom OpenDoorAction

[CLOSED] Test object visualisation

Issue by jwaa
Wednesday Jan 22, 2020 at 12:48 GMT
Originally opened as matrxs/MATRXS#19


Test whether objects in the default GUI work as expected when;

  • objects are on top of each other
  • objects have a certain opacity
  • that a drawing is below all objects

[CLOSED] Connect new frontend to backend

Issue by thaije
Friday Jan 24, 2020 at 09:19 GMT
Originally opened as matrxs/MATRXS#27


  • Gen HTML grid
  • Gen grid on factory initialize
  • Connect start/stop buttons
  • Connect agent dropdown list
  • Start paused
  • Make libs local, so frontend also works without internet
  • Connect start screen
  • Connect agent template
  • Connect human agent page

Action parameter check

Issue by jwaa
Friday Feb 14, 2020 at 10:20 GMT
Originally opened as matrxs/MATRXS#49


Let the GridWorld check if an intended action requires a certain parameter (and no default value is set in the mutates/is_possible method header). So that a sensible exception can be thrown when that required parameter is missing.

Center on agent function

Issue by matrxs
Thursday Jan 16, 2020 at 08:30 GMT
Originally opened as matrxs/MATRXS#8


When zooming in, the user might want to follow a specific agent. This requires the grid to be centered on that div.

Facilitate using images for visualizer outside of visualizer folder

Issue by thaije
Tuesday Jan 28, 2020 at 10:14 GMT
Originally opened as matrxs/MATRXS#29


For the visualization, images are served from the matrxs_visualization/static/.. folder. When MATRXS becomes a python package, it does not make sense for users to have to put their images in that folder of the python package.
As such, figure a way out to serve images via the Flask frontend visualization server from outside of the Flask app directory.

[CLOSED] Scrollbar for message window when many messages are sent

Issue by thaije
Thursday Jan 30, 2020 at 14:41 GMT
Originally opened as matrxs/MATRXS#32


Right now, when there are many messages sent using the chat, the user has to scroll the complete page to view them. Instead, it would be nice if the container would had a maximum height, e.g. 60% of the view height of the user, after which the chat window gets a scroll bar and the user can view all messages by scrolling to the top inside the chat window.

Filter_state_objects in agent_brain

Issue by matrxs
Tuesday Jan 21, 2020 at 13:21 GMT
Originally opened as matrxs/MATRXS#16


The same function as the get_env_object and filter_env_objects, as specified in issue #15. Only difference is this function can do the same filtering for a state in an agent_brain, as from there the grid_world.get_env_object function cannot be accessed.

Fill context menu from MATRX

Issue by thaije
Thursday Feb 13, 2020 at 14:36 GMT
Originally opened as matrxs/MATRXS#45


The context menu is empty by default. A connection has to be made to MATRX, asking the agent / GridWorld which actions should be put into the context menu.

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.