We regularly have undergraduate research positions open for JMU students majoring in either computer science or mathematics. If you are interested in working on research level problems, please contact Dr. Bowers or Dr. Taalman. You are especially encouraged to start the first semester of your junior year, at which point you have enough CS and/or math background to be dangerous.
See posts from our undergraduate research assistants at the blog.
Below are several of our open projects that have room for interested students to begin learning and contributing.
Koebe.py: a library for discrete inversive geometry in python. This project seeks to develop a library for discrete inversive geometry implemented in the Python programming language. The goal is to serve as a computing platform for researchers to create geometric constructions to aid in mathematical investigation. A student working on this project will learn computational geometry algorithms and graphics. Some example visualizations from scripts using koebe.py are shown below. [Github Project]
3D Printing Infill Meshes. This project seeks to develop better infill meshes for 3D printed structures optimizing for different goals such as management of internal structure stress under load. This is part of an ongoing collaboration with the Oak Ridge National Labs Manufacturing Demonstration Facility (MDF). A student working on this project would learn computational geometry algorithms as well as get their hands dirty with a host of 3D printers. See below for a picture of Dr. Bowers (center) with collaborators Dr. Pum Kim (left) and Dr. Ken Stephenson (right) with a 3D printed airfoil with infill generated using our algorithms and code implemented by JMU’17 student Xiang Chen.
Spatial graph representations. This project seeks to discover and create 3D printed visualizations of families of graphs that allow underlying properties and symmetries of the graph to become more apparent as a 3D object than they are in 2-dimensional representations. A student working on this project will learn graph theory, OpenSCAD, and design and create real 3D printed objects.
Escher: a programming language for generating subdivision tilings. This project seeks to develop a programming language for specifying finite subdivision rules and compiling them into geometric tilings. A proof of concept of the Escher language has been created, but the next step is to develop it into a robust full-fledge solution. A student working on this project will learn about advanced data structures, algorithms, compilers, and graphics. An example pentagonal subdivision tiling from the Escher prototype is shown below.