Skip to content

Latest commit

 

History

History
112 lines (56 loc) · 3.24 KB

Proposal.md

File metadata and controls

112 lines (56 loc) · 3.24 KB

Project Proposal - Simulation of life in a 2D world

Abstract

With developments in algorithms and computing power, simulations have become an important tool for studying complex systems. Simulations can be used to model the behavior of systems that are too complex to be analyzed analytically. They can also be used to study the behavior of systems under different conditions, or to predict the behavior of systems in the future. One area where simulations have been particularly useful is in the study of behavior of living organisms. Simulations of life in a 2D world have been used to study the behavior of organisms in a controlled environment.

The project aims to simulate life in a 2D world. The world will be a grid of cells, each cell can be empty or occupied by an organism. The organisms will have a set of characteristics that will determine their behavior and interactions with other organisms. The simulation will be based on a set of rules that will define how the organisms move, reproduce, and interact with each other. The goal of the project is to create a simulation that is both realistic (in terms of experiment) and interesting to observe.

Team Members

  • Devipriya Parasuraman

  • Ilya Platonov

  • Jayatharan Indran

  • Xianqing Zhang

  • Xin Zhang

Goal

The goal of the project is to create a simulation of life in a 2D world. The simulation will be based on a set of rules that will define how the organisms move, reproduce, and interact with each other.

Objectives

  • Implement a rendering engine that can display the 2D world and the organisms in it.

  • Implement a set of rules that will define how the organisms move, reproduce, and interact with each other.

    • Algorithm for movement

    • Algorithm for reproduction

    • Algorithm for interaction

  • Implement a user interface that will allow the user to interact with the simulation.

Knowledge skills required

  • Programming in Python / C++ / JavaScript

  • Knowledge of algorithms, data structures and object-oriented programming

  • Knowledge of computer graphics and rendering techniques

  • Knowledge of artificial intelligence and machine learning

Software, tools, system architecture and components anticipated

  • Git

  • Python / C++ / JavaScript

  • Graphics library (e.g. OpenGL, SFML, SDL)

  • Pytorch

  • Jupyter Notebook

Research expected

  • Research on existing simulation systems

  • Research on algorithms for movement, reproduction, and interaction of organisms casted into the simulation

  • Research on rendering techniques for displaying the 2D world and the organisms in it

Plan of action (3 months)

Week 1-2

  • Research on existing simulation systems

  • Research on algorithms for movement, reproduction, and interaction of organisms

  • Research on rendering techniques

Week 3-4

  • Implement the rendering engine

  • Implement the algorithm for movement

Week 5-6

  • Implement the algorithms for reproduction and interaction

  • Implement the user interface

Week 7-8

  • Test the simulation

  • Optimize the algorithms

  • Research on ML techniques for improving the simulation

Week 9-10

  • Optimize or improve the algorithms

  • Implement ML techniques if necessary

Week 11-12

  • Finalize the project

  • Prepare the presentation

  • Write the final report