AgentSim: June Update (and Launch!)


AgentSim Launch

My goal has been to develop a platform that allows anyone to develop and test their algorithms for multi-agent systems. My original goals are here, and my April update here.

Since April, I have been working to get this project to a stage where people can start using it. Now, after completing the API, DSL, visualization, and sample algorithms, it is time for the launch of AgentSim!    

If you are interested in trying it out, email me at aditshah00@gmail.com, and I would really appreciate any feedback! I am willing to expand the functionality and algorithms available on this platform.

For an overview of the rationale, code, and visualization of my project, check out this presentation and demo!

Components

There are four main components to this project:
  • Node API
    • A Java and Kotlin API for creating and manipulating each node/agent
    • Uses gRPC in the background to emulate broadcast messages of information updates (including location and weights) 
  • DSL (Domain-specific language)
    • An intuitive way to create algorithms using the Node API
  • Visualization
    • Users can visually see how their algorithms perform in a 2-dimensional grid-based environment
  • Sample Algorithms
    • So far, I have implemented a Greedy and Log-Linear Learning algorithm with the AgentSim DSL, which are described in my research paper from UC Santa Barbara here.

Progress Update

Accomplishments in May/June

  • Completed the DSL (domain specific language) for defining algorithms on top of the core Java/Kotlin API
  • Implemented the Greedy Algorithm and Log-Linear Learning algorithm
  • Developed a visualization
    • Used p5.js (Processing library for Javascript) to create the visualization
    • Runs on a web server made by Ktor in Kotlin
  • Refactored and reorganized all code for usability
  • Commented and documented all code: detailed docs can be found on the main GitHub page readme: https://github.com/ashah03/kotlin-distributed-framework

Future Tasks

  • Begin gathering user feedback
  • Implementing new platform features and sample algorithms based on feedback
  • Create algorithm analytics functionality: computation time, convergence time, etc.

    Comments

    Popular posts from this blog

    AgentSim: Rationale and Goals

    Teaching Python at STEAM Series

    Positronics – Day 1