Browser-Based Constructive Solid Geometry for Anatomical Models

Last updated: April 7 at 2:30 am


The goal of our project is to develop a ​browser-­based​ constructive solid geometry application for the efficient creation of 3D anatomical models, specifically the creation of a modular orthosis.

  • Students: Vikram Chandrashekhar, Nicole Ortega
  • Mentor(s): Alex Mathews, Param Shah

Background and Significance

One in 323 children in the US are born with cerebral palsy. Two out of every three children born with cerebral palsy could walk if they had proper orthotics to alleviate their condition. Currently, ankle foot orthotics are used to correct gait and prevent muscle deformities. The current process for making custom ankle foot orthotics is tedious and wasteful. The process begins by creating a hard cast around the foot of interest. The cast in then filled to create a mold of the foot. Once the mold hardens, the cast is removed and the orthotic is created and cut around the mold. Ultimately, the cast, mold, and scraps of material from the orthotic are thrown away. The cost to make a custom orthotic ranges from $400 - $600 (compared to $10 - $80 for off the shelf orthotics) and can take up to 3 weeks. Checkups every 6 months are required for adjustments. On average, these orthotics are replaced every six to eight months, which involves repeating the tedious and wasteful casting process.

Fusiform, a medical device group, has developed a process to reduce waste, reduce time, and increase efficiency of attaining a custom orthotic. The Fusiform process begins by using a structure sensor mounted on an iPad to take a 3D anatomical scan of the leg to a 1mm accuracy. The orthotic is then created on Solidworks using the scan and fabricated by CNC machine. The Fusiform process reduces waste by no longer requiring the creation of a mold and taking advantage of the CNC machine’s subtractive production. Additionally, their modular orthotic design allows patients to upgrade individual parts, and thus produces less waste.

However, the Fusiform process has room for improvement. On average, it takes 10 hours to layer an orthotic on Solidworks. The goal of our project is to develop a browser-based constructive solid geometry application for the efficient creation of 3D anatomical models, specifically the creation of a modular orthosis. This approach is unique in that no other browser-based interface like this exists nor has it been applied to anatomical models.


Technical Approach

Figure 1. Workflow for clinical use. The red box is our contribution to the workflow.

Figure 2.​Workflow for our software.

Figure 3.​Software architecture with general overview of functions


  • Three.js Javascript software package that interfaces with WebGL to perform 3D rendering open­source software available, Completed
  • Blender/CAD ­software to perform constructive solid geometry and mesh modification algorithms are available through Johns Hopkins using education license, expected by 3/1
  • Object (.obj/.stl) files of anatomical leg scans will be provided by mentors, expected by 3/15
  • 3D Printer to test print casts will be provided by mentors, if needed by 4/17

Milestones and Status

  1. Create a browser-based three.js playground (add, move, and drag simple objects)
    • Planned Date: 3/1
    • Completed Date: 2/25
    • Status: Completed.
  2. Implement Constructive Solid Geometry (CSG) Algorithms for simple objects (sphere, cube)
    • Planned Date: 3/20
    • Completed Date: 3/10
    • Status: Completed.
  3. Expand the CSG algorithms to work for anatomical objects
    • Planned Date: 3/25
    • Completed Date: 3/20
    • Status: Completed.
  4. Implement a mesh decimation/reduction algorithm for anatomical objects
    • Planned Date: 3/30
    • Completed Date: 3/30
    • Status: Completed.
  5. Implement a Mesh cutting algorithm for anatomical objects
    • Planned Date: 4/2
    • Completed Date: N/A
    • Status: Incomplete.
  6. Implement mesh smoothing algorithm for anatomical objects
    • Planned Date: 4/10
    • Completed Date: 5/1
    • Status: Completed.
  7. Improve usability by adding parameter customization for various functions
    • Planned Date: 4/30
    • Completed Date: 4/25
    • Status: Completed.
  8. Add functions to rotate objects independently of the world-axis
    • Planned Date: 4/30
    • Completed Date: 4/25
    • Status: Completed.

Reports and presentations

Project Bibliography

  1. Amenta, Nina, Marshall Bern, and David Eppstein.“Optimal Point Placement for Mesh Smoothing.” Journal of Algorithms 30.2 (1999): 302-22.Web.
  2. Cignoni, P., C. Montani, and R. Scopigno. “A Comparison of Mesh Simplification Algorithms.” Computers & Graphics 22.1 (1998): 37-54. Web.
  3. Dey, T. K., & Goswami, S. (2003). Tight Cocone: A Water­tight Surface Reconstructor. ​Journal of Computing and Information Science in Engineering J. Comput. Inf. Sci. Eng.,​3​(​4), 302.
  4. Fan, Lubin, Ligang Lic, and Kun Liu. “Paint Mesh Cutting.” ​Computer Graphics Forum​30.2 (2011): 603­12. Web.
  5. Gregori, R. M., Volpato, N., Minetto, R., & Silva, M. V. (2014). Slicing Triangle Meshes: An Asymptotically Optimal Algorithm. ​2014 14th International Conference on Computational Science and Its Applications​.
  6. Ji, Zhongping, Ligang Liu, Zhonggui Chen, and Guojin Wang. “Easy Mesh Cutting.” C​omputer Graphics Forum​25.3 (2006): 283­91. Web.
  7. Plato, Jan Von. “The Axioms of Constructive Geometry.” ​Annals of Pure and Applied Logic​76.2 (1995): 169­200. Web.
  8. Ricci, A. “A Constructive Geometry for Computer Graphics.” ​Computer­Aided Design​6.1 (1974): 53. Web.

Other Resources and Project Files

Here give list of other project files (e.g., source code) associated with the project. If these are online give a link to an appropriate external repository or to uploaded media files under this name space.

courses/446/2016/446-2016-16/project_16_main_page.txt · Last modified: 2019/08/07 12:01 (external edit)