260 likes | 403 Views
Winter Semester 2005 Mentor: Dr. William L. Harrison Members: Pericles S. Kariotis William L. Moore Arthur C. Huggard. Biologically Inspired Model Visualization Capstone Project. Theory. “ Domain Specific Languages for Cellular Interactions ” w/ Robert W. Harrison Bioinformatics
E N D
Winter Semester 2005 Mentor: Dr. William L. Harrison Members: Pericles S. Kariotis William L. Moore Arthur C. Huggard Biologically Inspired Model Visualization Capstone Project
Theory “Domain Specific Languages for Cellular Interactions” w/ Robert W. Harrison Bioinformatics Domain-Specific Programming Languages & Haskell Rhodobacter Sphaeroides
Status Quorum • Manual! • Execute Simulation • Convert POV→Image • Convert image formats • Compile Image→Movie • Fixed Point of View
“Gentlemen, we can rebuild him. We have the technology … Better than he was before. Better, stronger, faster.”* What we want: • Automation • Intuitive Interface • Floating Camera • Immediate Results • Maintain Current Functionality *The Six Million Dollar Man
“…perfect freedom [is] a world where you have no restriction… but this world has nothing in it…” * • Expandable • Modular • Hugs/Haskell • Cross-Platform • Ease of Use • Speed *Neon Genesis Evangelion
Tools of the trade • C++ • OpenGL • QT • Many Compilers • POVRay • MPlayer • ImageMagick • And More…
Primary Contributions Pericles OpenGL/Qt Simulation Interface Billy POV-Ray/MEncoder and integration Charlie CellSys interaction
Controlling the DSL:CellSys The DSL is invoked from the GUI application. Specify POV file output directory Specify the language interpreter Specify the DSL program file Specify the command to execute
The Input Module Responsible for accepting the data from the DSL Currently uses file I/O (inefficient!), but could easily be re-written to use a more direct communication method Other alternatives: Haskell FFI, shared memory, even stdout
The OpenGL Simulation Simulation save/load Interactive camera Display boxes Timing slider Configurable play speed/direction Cell shadows (vapor trails) Cell tracking (different colors)
Encoding an AVI New application maintains and automates the previous methodology Specify a directory of POVs to encode, no further interaction is necessary Renders images with POV-Ray, instead of OpenGL Intrinsically supports anything native to POV
Implementation Issues Requires many packages Integration of pvengine is not seamless Further OpenGL support must be built-in I/O Module (file I/O is inefficient) Platform-specific details CellSys DSL State sampled with every update Information output is sparse Bugs "header" file
Performance • Actual Frame rates lower than Nominal Frames rates • Frame rate decreases as number of cells increases • Viewpoint Manipulation and Bounding Box decrease performance • Color Codes and Clipping Box have negligible performance delays • .csm file loads significantly faster than .pov files
Optimizations • More efficient data structure for frame data • Display lists to boost OpenGL rendering performance • Less viewpoint sampling • Cells built with fewer polygons
Future Work Implement additional OpenGL primitives Tabbed simulation More cell tracking features User-driven coloring Instant velocity vectors Display more information Light concentration Cell behavior Cell reproduction