CASE STUDY

Chemistry of Molecules

One of the world's foremost research universities.

Solution

VR Software Development

Industry

Educational Institution

Outcome

During the work on the project, all the goals were achieved. The Computool's specialists took into account the requirements of the client, implemented the necessary functionality and created a design that fully meets the idea of ​​the project.

During the work on the project,
several key options
were solved
Applying VR Experience in
Chemistry experiments
Implemented dynamic
loader for the molecules
Provided Microsoft VR and
Oculus Rift support

PROJECT DESCRIPTION

Markus Muellner, a CTO of the University of Cambridge (United Kingdom), was looking for an expert IT developers, who could help him to build a new VR application available for Chemistry demonstrations.

After negotiations and discussion of the project idea, the necessary agreements were reached. As a result, a mechanical prototype for a VR experience was created. It completes the main task of the project: to record the position of two 3D objects (a 3D model of a protein and its ligand) in relation to one another and display visual feedback (color change of parts of one of the objects) if particular vertices of one object move into proximity of particular vertices of the other.

This application was created for the internal needs of the company and monetization is not expected.

Using VR Experience in Chemistry

Dynamic loader for the molecules

High Performance and big data feedback

Support Microsoft VR

Support Oculus Rift

There is no monetization

Only 2 elements in application (protein & ligand)

Regular 3D mode Inputs is not supported

Communication Framework

Computools
Project Manager
Team Lead
Business Development Manager
Computools Engineers
University of Cambridge
CTO
Project Coordinator
Communication

Building a stable communication system on the project allows to quickly make decisions, exchange information (requirements, notes, reports, results) and stay on the same page. At the beginning of work on this project, the Upwork platform was used, in the future, all communication was transferred to Skype for maximum convenience on both sides.

Business Process Mapping

01
CONSULTING

The consulting phase includes several mandatory steps. Such as discussing an idea, identifying high-level goals and expectations of a client, potential stakeholders. The company also conducts an in-depth study of ready-made solutions and technologies, predicts possible obstacles and looks for solutions for them, calculates risks.

02
DESIGN

Design is one of the main stages at which a high-level architecture of the project is compiled, a specification is written and an interactive prototype is created. This allows to visually examine the functions and options of the future application, discuss project details with the client and better understand the tasks. Also at this stage, the development process is being built.

03
ENGINEERING

Development begins with building a team and selecting the specialists needed for this project. As soon as the team is assembled and an intro meeting is held, the tasks are distributed. Code development is carried out according to the chosen methodology and is divided into stages, at the end of each a series of necessary tests are carried out. When all tasks are completed and the application is ready, another series of tests, debugging and stabilization of the finished product are carried out.

Digital Platform & Technology

To build a proper architectural solution and parsing system, NodeJS microservice architecture and MongoDB chosen for the preparation of the backend solution.

Computools
Project Manager
Team Lead
Business Development Manager
University of Cambridge
CTO
Project Coordinator
Communication
Unity3D

Unity 3D is one of the best choices to go for interactive VR application development. It provides developers with necessary components eliminating the need of making them from scratch. One of the biggest advantages Unity 3D engine is that application can be launched on multiple platforms, like Android, IOS, Windows Phones, PCs, Macs, Steam, PlayStation, Xbox, etc.

C#

C# is a modern, general-purpose programming language that can be used to perform a wide range of tasks and objectives. C# integrates seamlessly with the Unity engine and can be used on virtually any modern mobile device or console thanks to cross-platform tech.

SteamVR

SteamVR is a software that lets developers create PC VR apps. Using this software provides application integration, complete immersion for the user and opens up opportunities for users of virtual reality.

System architecture

Specification

The project specification includes a list of actions that must be completed to successfully complete all tasks. The specification may consist of several steps and include additional sub-steps. Final specification is formed after the completion of the project.

Goal Showing on Cambridge presentation VR experience in Chemistry

Precondition Open Application with plugins VR Headset

Main Flow Load Protein from file Load Ligand from file Protein Control (Move, Rotate) Ligand Control (Move, Rotate)

Postconditions Do links between molecules Move around to see results and data

Alternative Flows All info about loaded molecules

COMPUTOOLS TEAM

For each project, the team builds individually to take into account all the requirements, features and nuances of the tasks. The company carefully selects employees whose skills, experience and knowledge are sufficient for this project. This allows to effectively achieve the project goals and implement a high-quality product.

Business Development Manager
Dennis Dubinsky
Team Lead
Nikolay Smorgun
Computools Engineers
Project Manager
Nikita Abelmasov
Quality Assurance Engineer
Mariia Bobrova

BACKSTAGE

The development process takes place in a friendly area of constant discussion and timely completion of tasks. We strive to create a healthy working atmosphere where each project participant can express their opinion, propose an idea or solution.

Dev meetings
Developer's meetings serve two purposes at once. Firstly, it is the interaction of team members, which allows it to rally and work more harmoniously. Secondly, it helps to detect errors in the code, find a solution or share experiences with other developers.
Team Brainstorming
Brainstorming is one of the most productive ways a team can work on a project if necessary to find an original solution. Each participant has the opportunity to offer an idea, even the craziest. Truly innovative solutions appear in the discussion.
Feedback sessions
At the end of the project or a large part of it, we conduct feedback sessions. This helps to identify the strengths and weaknesses of the project, its participants. Everyone gets the opportunity to improve their skills for the next project.

Internal Communication Flow

The team’s internal communication is a system that allows to quickly make decisions, stay in touch and hold necessary discussions. Computools experts used Skype for continuous communication and face-to-face meetings. For this project, Trello was selected, which allows to distribute tasks between participants and constantly monitor their status and implementation. This project management method guarantees its high speed and efficiency.

Project Management Methodology

To work on this project, Scrum was chosen as a methodology. Dividing the development process into short periods - sprints - allowed to complete the tasks quickly and conduct regular tests. This increased the efficiency of the team and accelerated the work. Compared to the traditional methodologies, Scrum is able to complete and deliver the projects about 40% faster to the customers.
Scrum provides a chance for the members in the team to be creative and be hands-on throughout the project. Decisions are taken by every individual on the team, thereby giving them self-sufficiency in doing the work. Using Scrum enables to generate the required ways for developing complex products in a simple way. The software team receives real-time input and feedback from the customer and using this, they are able to constantly update the system as and when required.

Project Steps

1
loader development
Defining goals
  • Identifying high-level project goals
Analysis & Exploration
  • Researching and analyzing the existing and ready-made solutions
  • Defining main restrictions and providing solutions for them
  • Identifying the main risks
2
link builder and shader
High-Level Architecture
  • Selecting basic architectural patterns and tools
  • Forming an application stack, work processes with VCS
  • Forming the main development guidelines
Interactive prototypes & Specification
  • Development of an interactive prototype
Process
  • Calculating the number of project teams
  • Configuring the technological processes and interactions between roles.
3
Steam VR Implementation
Build The Team
  • Making the initial scope based on the specification and estimate, calculating the optimal number of specialists for each role
  • Adding executors to the team's core
  • Forming the main development guidelines
Development
  • Distribution and execution of project tasks
  • SteamVR Implementation
  • Link builder and shader implementation
  • Loader development
Testing & Stabilization
  • Developing a testing plan
  • UI & Unit testing
  • Applying improvements
  • Code stabilization/refactoring, increasing system stability, reducing the probability of bug emergency

Engineering

Since Scrum was chosen as a methodology, code development was divided into short periods - sprints, which allowed for additional tests. This method makes it possible to identify bugs in the early stages of development and quickly eliminate them. A representative of the customer participated in the testing.

CODE SAMPLE

Scan QR code to find code sample

Or use link below

https://github.com/computools/chemistry-of-molecules

Implementation On Client’s Side

01 Launch

The application was created for the internal needs of the customer. However, the company's specialists conducted all the necessary tests and checks on the stability and performance of the application.

02 Transfer

The transfer to the client’s servers was carried out after the successfully completed testing stage and in compliance with all the rules and norms. After completion, an additional series of tests was launched to confirm the app was working.

03 Education

This project did not require additional training, a compilation of tutorials or guides.

Contact Us

Let's talk about your project.
Use the form to drop a line or write us an e-mail: info@computools.com

Thank you for your message!

Your request will be carefully researched by our experts. We will get in touch with you within one business day.

GET EXPERT ADVICE!

Computools will guide your company through a digital transformation.