120 likes | 216 Views
Ken MC NEILL Eclectic3D Http://eclectic3d.net. J3DWorkbench Visualization Studio. Project Overview. Real-time 3D tool based on Java 3D Visualization Simulation Open source infrastructure (Sourceforge) +20K lines of code since 2006 Generic Field Application Scientific Medical
E N D
Ken MC NEILL Eclectic3D Http://eclectic3d.net J3DWorkbenchVisualization Studio
Project Overview • Real-time 3D tool based on Java 3D • Visualization • Simulation • Open source infrastructure (Sourceforge) • +20K lines of code since 2006 • Generic Field Application • Scientific • Medical • Educational • Gaming • Collaboration
2-tier Architecture • Build-time scenegraph 'Workbench' • Eclipse Rich client plug-in environment • Powerful WYSIWYG desktop application • Compose & configure 3D objects & behaviors • Runtime Services • Pure Java • Extends and complements Java 3D API • Webstart-compatible
Workbench Features • Multi view • Model import • Collada, 3DS, DEM, OBJ, LWO • Configurable Navigation • Editing tools • Drag-&-drop, cut, copy, paste • Hierarchal property editor • Shape Wizards • Configurable shapes: torus, tube, bezier patch • Help system
Runtime features • Event dispatcher • Track changes to the scene or to objects • Collision detection & avoidance • +Mesh Deformation (new in v3.1!) • Combinable Triggers • Trigger on click, collide, keystroke • Noise-based animated textures • Alternative to shaders • Fire, smoke, water, lighting effects • Physics (new in v3.2!) • Simple inertia, hardness, friction, gravity
Code Design • Workbench Part • Eclipse RCP-compliant • Is a 'Product' • Composed of interactive Views • Includes Java 3D as a plugin fragment for each platform
Code Design • Runtime Part • 100% decoupled from Workbench code • 90% based on 'proxies' that wrap Java 3D nodes • 10% based on extending Java 3D nodes
Extending J3DWorkbench • Typically done via Workbench • Contribute plug-in to the product • New Wizard • Use composition to create & configure new objects OR • Extend a Runtime Proxy • More complex functionality • Use IPropertySource to expose new properties
Example Plugin 1 • J3DVolumeRender • Medical image volume reconstruction • Uses 'Marching Cubes' algorithm • Produces 3D mesh from 2D DICOM slices
Example Plugin 2 • TagSensorExtension • Polls an HTTP server for real world coordinates • Moves a 3D avatar's position in the virtual world
The Future • Need • Community involvement • Demo scenes to showcase technology • Ongoing maintenance of Java 3D