Here is where I post projects when they are finished. The projects may be full portfolio pieces, sketches, small animations or development projects, or any relevant work that I am working on. These posts may be personal projects or projects for clients.
Cochlear Implant Animation
Posted on:
This is an animation showing insertion of an electrode array of a cochlear implant through the round window and into the cochlea. The cochlea and vestibular apparatus were modeled organically in Maya using reference images. The reference images that I used came from the Computerized Scanning and Imaging Facility, a database of imaging managed by Dr. Darlene Ketten, one of my marine mammal research PIs, at Woods Hole Oceanographic Institute. The animation was composited in After Effects.
CT Scan to 3D Model Workflow using FIJI, MeshLab, and Maya
Posted on:
I’ve been trying out a new workflow for creating 3D models from CT scans. I reconstructed CT scans for many years back when I did whale research at Boston University. I used the program Amira. The process involved importing a stack of CT (or MRI) images, setting the threshold levels for different materials like bone and soft tissue, and then slowly segmenting out the structures of interest. The program could then build a color-coded 3D mesh from the segmented scans. But, aside from not having access to Amira anymore, I wanted to find a faster method of generating 3D models from CT scans. I was able to achieve this using open-source software.
The CT scan I used was that of the Panamanian fossil dolphin jaw bone provided for free by Smithsonian X 3D. The website provides scan data as well as full-resolution models. Since I am only interested in developing a workflow for now, I used only the CT scans as an example data set.
I used the software FIJI to view the scans. FIJI, like its precursor ImageJ, is an open source scientific image processing program. I have used ImageJ in the past, and FIJI is pretty much the same thing with many more features. I didn’t have to do any processing with the scans, so I directly used the 3D Viewer plugin after importing the scans. From there you can save the surface reconstruction as at STL file. The caveat with this method is that, in order to get a full model using all the of the CT slices, you will need a lot of computing power. That, I do not have. So I had to take the scan in parts. I also didn’t need the full resolution, so I ended up using every 4th slice. I split the scans into 5 segments, resulting in 5 STL files which could be pieced together later.
The next step was to convert the STL files into a file format that can be read by Maya. Maya cannot import STL files, so the models needed to be converted to OBJ. For this, I used another open source software called MeshLab. I only used it to import the STL and save as an OBJ, but now that I have it, I will have to experiment some other time with re-meshing models.
I then retopologized the model in Maya working off of a polygon cube primitive, resulting in the first image above. Overall, this was a fairly simple process getting from imaging data to a clean, low-res 3D model.
A short animation showing a bacterial cell dividing. I really wanted to capture the look of a scanning electron microscope. The scene was modeled and animated in Maya and composited in After Effects.
An experiment in creating fractals within the browser using JavaScript and D3.js. The fractals that are represented include: Koch curve, Koch snowflake, Cesàro fractal, Lévy dragon, Heighway dragon, Sierpinski gasket, Sierpinski carpet, binary tree, and Cantor set.
I am somewhat of an aviation geek. Since I was young, I enjoyed watching planes take off and land. To me, airplanes are an extraordinary accomplishment in engineering.
I decided it would be a fun data visualization challenge to depict the route maps for every commercial airport and airline. There are of course existing tools that already do this, including openflights.org and flightmapper.net, but I wanted to make one of my own.
The primary tools I used to build this interactive map were D3.js, Mapbox, Leaflet, JavaScript and jQuery. The map also features arc.js and typeahead.js.
Data came from many sources, wherever I could find the necessary information. That included Wikipedia, official airport websites, official airline websites, iata.org, and openflights.org. I intend to use this tool to show the most current route maps for every commercial airline; however, due to the constantly changing schedules of airports and the airlines that serve them, data is prone to be out-of-date or incomplete.
I felt like doing a more engineering-related visualization, so I made a simple oscilloscope visualization using D3.js and JavaScript. An oscilloscope is a device that shows an electrical signal as a function of time. This is a very basic visualization mimicking an oscilloscope that offers 4 types of waves: a sine wave, a square wave, a triangular wave, and a sawtooth wave. The x and y properties of both the signal and display properties can be changed.
I had the opportunity to do some data visualization work for Boston University. There were a number of projects I worked on there, each with several team members, but here are three that have been published.
1. Lessons from Venice, Bostonia, Fall 2014
For this project, I developed an interactive map showing the predicted rise in sea level in the Boston area. I used Mapbox and Javascript.
2. Picturing a Long-Gone Citadel, BU Today Special Report
My part in this project was getting a rotatable 3D model of a citadel excavation site in Turkey to show up in the browser. I used three.js, which uses WebGL and a canvas backup. If the browser supports neither of those, it defaults to a static image. I did not create the model or design the page.
3. Five Thousand Heads are Better than One, BU Research
Similarly to the citadel, I used three.js to show a model of an ant brain. I did not create the model; I merely smoothed it and applied textures that matched the page design.