In fall 2023 and spring 2024, I worked on a Senior Design project sponsored by RockyTech in collaboration with Quorum Prosthetics. Focusing on an upper leg prosthetic, our team developed a pressure sensor system that detects and displays live pressure data from a patient's limb during the prosthetic fitting process. This was the first system of its kind to output calibrated pressure values and display them in 3D. We won the people's choice award at the Engineering Projects Expo.
My primary contribution was the 3D visualization of the pressure data, coded in Python with the PyVista library. This feature is the primary interface of information for the practitioner, so I made sure that it runs efficiently and effectively, reflects the real world, and is visually comprehensible. The following image shows this interface with simulated pressure data. The spheres depict pressure sensor locations, colored accurately to the measured pressure, and the 3D mesh surface shows interpolated pressure to provide a sense of overall pressure distribution. The 3D mesh can be dragged around to view all sides, and labels above each strip of sensors correspond to the physical device, ensuring that the orientation is always discernible.
In order to display accurate positions of the pressure sensors, I used ray tracing, an algorithm borrowed from computer graphics, to find points on the surface of a 3D scanned prosthetic socket. Additional points are found with ray tracing to smooth out the mesh surface and interpolated data, and the coordinates of all the points are tabulated, arranged into the triangular faces of the mesh, overlayed with colored pressure values, and saved between runs of the program to minimize initial computation time. Because this code was handed off to our sponsor for further development, I coded all of the mesh calculation dynamically based on input parameters of the socket scan and sensor layout. I created detailed documentation of this entire process, extensively commented throughout my code, and reviewed my code with the computer science major in our team.
Here is a demonstration of the 3D visualization in action with live pressure data: