Life Designer
Here are some examples of my work at Omphalos Lifesciences Inc. As part of a small team, I either solely developed and maintained these projects or collaborated closely with 1-2 colleagues.
IDE (UE for Desktop Apps)
Using UE5’s C++ UI framework, Slate, we were able to utilize UE5 as a general desktop application framework. In this IDE, we have support for a drag/drop tab system, a file-tree viewer, code editor with syntax highlighting, a build output logger, and more.
Molecular Viewer
I’ve integrated Avogadro and OpenBabel into our software which allows our users to visualize molecules with ease. Minor modifications are needed for this integration to really work for several reasons - a big one being that Avogadro is based in Qt and OpenGL, but making the underlying code a bit more general allows us to use these powerful tools for our use case.
Infinite Resolution Navigation
A novel feature of Life Designer’s visualization is it’s navigation features. With the direction of my colleagues, I was able to implement such a system which allows users to freely roam in 3D space but also “zoom in” and “zoom out” to/from a specific object, modifying the user’s perceived resolution (e.g. from kilometers to picometer). This required a custom level streaming solution and a well-thought out state management system.
Biological Tooling
Using Slate, I’ve implemented various biological tools for the visualization and analysis of our live simulation data, such as 2D plots, biological diagrams, and a genome viewer.
Biological Visualizations
As the person in charge for providing 3D visualizations of various molecular processes, there have been many visualizations I’ve created during my time at Omphalos Lifesciences Inc. These systems are implemented by a mix of Niagara, Blueprint, and custom C++ code.
Controlling visualizations via Python & gRPC
For the sake of modularity, our simulations visualize data via a server-client model, where the client is our UE5-based software. I created this system in a way where the API makes it very simple for our simulation engineers to visualize any type of data: from worlds of 3D objects, to simple 2D plots.
Testing & Automation
As both Windows & MacOS are target platforms for Life Designer, and we have multiple C++ projects that are to be combined together into a single application, I’ve created a Python script that encapsulates the entire build process of Life Designer. This allows any developer on our team to clone our project and build an installer for either Mac or Windows just with a single invocation of this script.
Furthermore, using UE5’s testing framework we’re able to perform automated tests for our shipped build of Life Designer, and I’ve also developed an accompanying UI for ease of use of this system.