Development Blogs

Week 1-2:
Project Overview

During the first two weeks of the term, we were introduced to our assigned teams, client, and project. Our task was to be the Compilation team, which mainly focused on the Compilation of Motioninput and API development, as well as the MotionInput Migration.

As the MotionInput compilation team, we were responsible for developing API and improved compilation processes with advanced branch merging and secure data packaging via obfuscation. As part of the project, we were also tasked to managed the Migration of MotionInput from version 3.2 to 3.4. This extensive task required us a strong understanding of MotionInput's codebase, including APIs, software architecture and design patterns.

Overall, these first two weeks were crucial for helping us understand the project requirements and our role as the Compilation team. We established a detailed plan, outlining our tasks, objectives, and the project's timeline and expectations.

25 Oct, 2023

Week 3-4:
HCI and Requirements

During this period, our team spent time getting familiar with the MotionInput sourcecode. We began to learn how to migrate the classes in older version 3.2 to the new version 3.4. This migration process involved more than transferring functionalities; it required a thorough analysis of the existing codebase. We meticulously analyzed each module to understand the intricacies of the modes and their specific functionalities.

At the same time, the team was assigned an HCI assessment and lectures. We started by gathering user requirements and creating a persona, followed by scenarios of how users would use their work to help them. We then worked on designing Prototype using a Figma, a powerful and user-friendly collaborative software. With Figma, we were able to create a wireframe representation of our prototype, which gave us a visual representation of how our project would function and look. This was an essential step in the development process as it allowed us to refine our ideas and make any necessary changes before moving forward with the next stages of development.

8 Nov, 2023

Week 5-6:
MotionInput Migration

Once our prototype and HCI report were finalized and submitted, we continued with the MotionInput Migration. During this week, our team successfully completed the migration of the main branch from MotionInput V3.2. We focused on migrating essential classes neccessary for games such as Rocket League and Minecraft. Additionally, our team provided support to other teams in feature extraction. A significant achievement was the successful migration of several key classes, including all head modules, nose tracking, pitch click, swipe event, force fields event, and five other classes. This progress marked a substantial step forward in enhancing the software's capabilities.

As our project moved forward, we focused on staying organized, especially with administrative tasks. We set up a project website to keep all important information and documents in one place, which really helped us stay informed and on top of things. We also made a Gantt Chart. This chart was useful for keeping track of our progress and managing our time effectively. It helped us see where we were in relation to our project timeline and make any needed changes to stay on schedule.

29 Nov, 2023

Week 7-8:
Testing with Games

We tested various games to validate the features we developed. For example, 'Dino Run' helped us test the pitching event, 'Traffic Rush' for the force field event, 'Stack Smash' for the smile event, and 'Bubble Shooter' for the head trigger event. We chose diverse and popular games to ensure comprehensive testing and real-world applicability.

Aligned with MotionInput Games' commitment to accessibility, we collaborated with Richard Cloudesley School, focusing on children with severe disabilities. We tested our games and received feedback from clinicians, enhancing our software to better serve diverse users. Specifically, We've made notable advancements in crafting and trialing elements, especially in migrating preliminary gestures. This collaboration provided us with invaluable feedback from clinicians, allowing us to fine-tune our software to better meet the diverse needs of our users.

13 Dec, 2023

Week 9-10:
Live Demos and Pitch

Having completed the game testing phase, we shifted our effort towards preparing live demos aimed at industry professionals. This demonstration, held on 19th January, involved showcasing our research, sharing our project deliverables, outlining management strategies, and presenting our vision for future developments.

In our preparation for the elevator pitch, we meticulously covered all critical aspects of our project. We began with a brief overview of the problem we aim to solve, highlighting the diffuculties of using a current accessibility tool for children with severe disabilities. We also showcased our progress in advancement in crafting elements, especially in migrating preliminary gestures. This advancement has led to a system that enables users to intuitively assign gestures to control commands on any device, allowing for straightforward customization and enhanced accessibility.

In addition to this, we outlined our immediate goals, with a primary focus on finalizing the adaptable API. We emphasized the importance of prioritizing the clear documentation and a user-friendly interface to encourage user adoption and foster innovation.

19 Jan, 2024

Week 11-12:
MotionInput API design

During this week, we finalized migrating the modes, specifically 'nosebox_display', 'face_display', 'display_element', 'circle_trigger', and 'body_points' classes. The ability to display both nosebox and face within a view enhances user interaction, making applications more intuitive and engaging. Furthermore, the implementation of actions based on the interaction of specified landmarks with the circle trigger introduces a new level of interactivity, enabling developers to create more dynamic and responsive applications.

Simultaneously, we focused on the API's design. The aim was to ensure that the API not only supports the newly integrated features but also remains straightforward to use and integrate. This involved defining clear, intuitive endpoints, and ensuring the API documentation is comprehensive and easy to understand. The goal was to empower developers, regardless of their experience level with motion-based input technologies, to incorporate MotionInput into their projects effectively.

31 Jan, 2024

Week 13-14:
MotionInput API Implementation

The latest update to the MotionInput API, transitioning to MI 3.4, introduces significant enhancements in motion-based input technology, incorporating advanced drivers, poses, modes, and modules for diverse application requirements. This update ensures a smooth transition from MI 3.2, maintaining all crucial functionalities.

The API now compiles into an executable file for Windows and a Python extension module, demonstrating its adaptability across platforms. Distribution channels have been broadened with a Python package for Mac/Linux and a Dynamic Link Library (DLL) file for Windows, facilitating ease of integration for developers across different operating systems and programming languages.

In essence, the MotionInput API offers a robust, flexible solution for developers aiming to integrate motion-based controls into their projects, promising innovative development opportunities across software applications.

20 Feb, 2024

Week 15-16:
Final Summary

In the final period of the MotionInput API project, our team focused on organizing and summarizing the entire development process and system architecture. We compiled a comprehensive final summary, capturing the project's evaluation, key milestons, and technical advancements. Additionally, we prepared and delivered final presentation to showcase our work to the public, highlighting the MotionInput's API's capabilities and its potential impact on motion-based input technology. This closing phase not only marked the project's completion, but also set the stage for future innovations and applications, demonstrating our commitment to advancing developer tools across various platforms.

5 March, 2024