Omni Assist
Omni Assist is a TÜBİTAK-supported Unity desktop application where patients with physical problems in their hands and arms can play rehabilitation exercise games through wearable hardware.
- Context
- Sigun Bilgi Teknolojileri
- Category
- Desktop
- Period
- Feb 1, 2020 - Nov 1, 2020
Technologies
C# Unity .NET Standard 2.1 Git GitLab Visual Studio SourceTree JSON Serial Port Communication with COM Port RS-232 Postman GIMP REST Services Multithreading Singleton Pattern Abstract Class Interface
Project Type
- The project is a desktop application developed with the Unity game engine.
- It is a gamified rehabilitation application developed for patients with physical problems in their hands and arms.
- The project was supported by TÜBİTAK.
Architecture / System Design
- The architecture consists of two main layers: the desktop application used by patients and the wearable hardware worn on the arm.
- The wearable hardware was developed by another company and produced pressure and movement data in byte array format.
- The hardware transferred this data to the application over a wired connection using the RS-232 serial communication standard.
- The application parsed and transformed the incoming data into meaningful values used as game parameters.
- The Singleton Pattern was used for shared state and object access across game flows.
- Abstract class and interface structures were used to reduce dependencies, avoid repetition, and improve extensibility.
Technologies Used
- Desktop development: C#, Unity, .NET Standard 2.1, Visual Studio
- Hardware communication: Serial Port Communication with COM Port, RS-232
- Data and integration: JSON, REST Services, Postman
- Architecture and performance: Singleton Pattern, Abstract Class, Interface, Multithreading
- Version control and assets: Git, GitLab, SourceTree, GIMP
Key Technical Details and Modules
- Developed dozens of games for different exercise types.
- Integrated the desktop application with REST services.
- Added multi-language support.
- Added multithreading support for operations that should not block gameplay.
- Integrated game modules with the wearable hardware data flow.
Participation and Timeline
- I developed the project independently.
- I took part in the full process from start to finish.
- I worked on the project as a Software Engineer between February 2020 and November 2020.
Project Management / Team Structure
- No separate project management tool was used for this project.
- The project was versioned with Git and stored on the company's GitLab server.
- I developed the project based on feedback from doctors and the company's co-founder.
Personal Contributions and Responsibilities
- Analyzed patient needs based on feedback from the TÜBİTAK reviewer and doctors involved in the project.
- Defined exercise types that patients needed to perform based on these analyses.
- Developed desktop games with Unity according to the identified exercise types.
- Integrated the developed game modules with the wearable hardware.
Deployment Information
- Since the project is a desktop application, it does not have a publicly accessible deployment address.
- During the period I worked on it, the project received successful scores from TÜBİTAK reviewers.
- I do not know whether the company continued the project after I left.