Date post: | 13-Dec-2015 |
Category: |
Documents |
Upload: | poppy-lewis |
View: | 215 times |
Download: | 0 times |
Biologically Inspired Model Visualization Capstone Project
Winter Semester 2005
Mentor: Dr. William L. Harrison
Members: Pericles S. Kariotis
William L. Moore
Arthur C. Huggard
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
The Old System (Ugly)
Even uglier…
“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…” *
Hugs/Haskell Cross-Platform Ease of Use Speed
*Neon Genesis Evangelion
Expandable Modular
Tools of the trade C++ OpenGL QT Many Compilers POVRay MPlayer ImageMagick And More…
The Proposed System
Primary Contributions
PericlesOpenGL/Qt Simulation Interface
BillyPOV-Ray/MEncoder and integration
CharlieCellSys interaction
Controlling the DSL:CellSys
The DSL is invoked from the GUI application.Specify POV file output directorySpecify the language interpreterSpecify the DSL program fileSpecify 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)
Interface Design
More Dialogs and UI
Opening and Playing
Running Simulation
AVI Rendering
Encoding an AVI
New application maintains and automates the previous methodologySpecify a directory of POVs to encode,
no further interaction is necessaryRenders images with POV-Ray,
instead of OpenGLIntrinsically supports anything native to
POV
System Diagram
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 updateInformation output is sparseBugs "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
Test Results
Actual FPS for Nominal 100 FPS
66.67
52.63
37.04
23.2612.05
01020304050607080
0 300 600 900 1200
Number of Cells
Ac
tua
l Fra
me
s P
er
Se
co
nd
No Options
Bounding Box
ViewpointManipulation
Test Results
100 Step Simulation Loading
0
2
4
6
8
10
12
14
0 200 400 600 800 1000
Number of Cells
Lo
ad
Tim
e (
se
c)
POV Files
CSM File
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 coloringInstant velocity vectors
Display more informationLight concentrationCell behaviorCell reproduction