Skip to content

For Developers

Syntetic Intelligence Labs Logo

Hello Developers, welcome to the start of our exciting journey together. We're embarking on an adventure to develop the Unified Software, a project with the potential to revolutionize Bio-Computing. This software is the heart ❤️ of our research project.

Let's dive in and start discussing how we can bring this vision to life!

What is Unified Software ?

Unified software is a computer software being developed under this research project to control complete system which includes data analysis, hardware control, monitoring and conversion of neural signals and more. It will help researchers to develop Bio-Sillicn systems.

This page answers frequent question that will pop-up in your heads when you will start developing this software. If your question is not answered here, feel free to reach us through GitHub or Discord

How to get started ?

Before getting started, it's important to ask "What's required to get started?" Below are the requirements to get started:

  • 👨‍💻 Turn on your super developer mode.
  • 🎧 Your favorite music.
  • ✍️ Your code editor.
  • 🐍 Python installed.
  • C++ installed.
  • ☕ Don't forget the energy drink of devs.

Linux based operating systems are recommended. Now, let's talk about How to get started ?. We should first start by understanding the structure of the software.

The software architecture is quite big and complicated so it's broken down into smaller peices. Throught the development it is high recommended to develop each peice independent of other i.e if one piece of software malfunctions then whole software should not crash. This will ensure reliability and stability.

Structure

We will divide the structure into MUST TO HAVE, IMPORTANT TO HAVE and GOOD TO HAVE

  • Must to have: The features we must implement to devliver the root functionality, the High Priority features.
  • Important to have: The features that should implement basically features on Moderate priority features.
  • Good to have: The features with low priority i.e additional themes, animations etc.

Must To Have

  • Update Tool: Checks for software updates including games and updates the software if they are available. This is important because we don't need our users to download a .zip file again and again for even small changes.

  • Settings App: Through this app users can change settings of the software according to their needs. This is important not only for users but for our developers too because it will be a bit time-consuming to hard code configuration values.

  • Logger Service: This is one of the most crucial part of any software because it's important to for every user and developer to know what going behind the scenes.

  • Basic Dark Theme: We are using Qt Framework with C++ & Python which provides us with a set of widgets with native style which may not look very pleasant to the user especially when using software for a long period of time.

  • Data Manager (C++): The data manager tool is an important part of this whole system, it helps us to communicate between different peices. In this software we are utilising both Python & C++ which cannot communicate directly.

  • Thread Management Service: We will be creating many threads during the run-time for different tasks, so it's important to keep a track of the thread working.

  • Neural Signals Converter: This will convert the neural signals (Analog) to Digital so that we can process them. This will also convert digital singals back into analog signals so that the subject can process the signals.

  • Game State Update Serivce: We will have different games that will be played by the subject which will be running in different window, we need to update the game state in the software so that the user is aware about what's going on.

Important To Have

  • Log Analysis Tool: This will help users to find the most occuring errors and warnings and understand what went wrong or in what sequence things were executed.

  • Session Manager: This will be help users save all their data generated while a session.

Good To Have

  • Just some extra themes.

Creating Pull Requests

You made any modification or you have better approach and want to bring to light, just make a pull request in the Unfied Software branch. Your pull request should include a clear description the following:

  • Code
  • What you are trying to acheive ?
  • How is your better than the current one ?