Overview

A user can generate views of a frog from many different directions, under various stages of dissection. Dissection is done at the major organ level. The kit has the capability of displaying an organ's name and function based on a click in the image.

I started developing this page with two chunks already largely completed:

  1. Masks representing each organ, painstakingly generated by Craig Logan and Wing Nip (see the Whole Frog Technical Report).

  2. Code previously developed by myself and Brian Tierney to perform the Dividing Cubes algorithm on mathematical and medical imaging sets, and render the results. (The Dividing Cubes algorithm was developed by Crawford, Cline, Lorensen, et al. at General Electric).

The interface was developed first under X and then ported to Web forms. The program works as follows:

The kit uses a pre-generated 3D point and normal list. Dividing Cubes was performed separately on each organ mask to generate a point list for each. Since this only needed be done once, CPU-intensive improvements were made to the way points and normal approximations are generated.

The CGI script called through submitting the form is written in C. It uses sockets to communicate parameters to previously started server(s). One server is chosen, depending on the request. Server(s) perform the rendering of the in-memory point list, based on the organs and view chosen. In this way the Web server doesn't necessarily have to perform much computation.

After a server has produced an image, it sends an acknowledgment back to the Web server, and the new form and image is passed back to the browser.

Originally, a cron script went through the temporary image directory every half hour and removed files more than half an hour old. Disks are cheap now so that a large number of the images are cached for a time.




Berkeley Lab | DST | Notice to Users | Whole Frog Project | Virtual Frog

Page last modified: 03/25/19
Contacts: Bill Johnston, David Robertson