3D Renderer (In Beta)
This is a plugin for Cytoscape 3 that is capable of replacing the default Ding 2D renderer with a 3D renderer. Underneath, it uses the JOGL library which allows access to C/C++ based OpenGL libraries from Java. The renderer is currently under development.
Current Features
- Node and edge manipulation, addition/removal
- 3D camera movement and rotation
- Interactive bird's eye view
- Basic visual properties: node shapes, edge line types, edge widths, color
- Integration with visual style editor/previewer
- Node label rendering
Download
Windows: cytoscape-windows-3.0.0-M4-SNAPSHOT-3d-0.6.zip
Mac, Linux, UNIX OS: cytoscape-unix-3.0.0-M4-SNAPSHOT-3d-0.6.tar.gz
Installation
Windows: Extract the .zip file and run cytoscape.bat.
Mac, Linux, UNIX OS: Extract the .tar.gz file and run cytoscape.sh.
Bird's eye view
Under the Network tab to the left, click or drag the mouse on the bird's eye view display to move the main camera
Visual Properties and VizMapper
For node shapes, the following settings in VizMapper will give the following results:
VizMapper setting |
3D result |
Ellipse |
Sphere |
Diamond |
Cube |
Triangle |
Tetrahedron |
(New as of v0.52) For edge line types, the following settings give the following results:
VizMapper setting |
3D result |
Solid |
Regular edges |
Equal Dash |
Dashed edges |
Dots |
Dotted edges |
Camera Controls
Movement:
W |
Move up |
A |
Move left |
S |
Move down |
D |
Move right |
E |
Move forward |
Q |
Move backward |
Rotation:
Z |
Roll camera clockwise |
X |
Roll camera counter-clockwise |
Shift + Left |
Rotate about Y-Axis, towards the left |
Shift + Right |
Rotate about Y-Axis, towards the right |
Shift + Up |
Rotate about X-Axis, upwards |
Shift + Down |
Rotate about X-Axis, downwards |
First-person camera turning:
Left |
Turn camera left |
Right |
Turn camera right |
Up |
Tilt camera upwards |
Down |
Tilt camera downwards |
Network Manipulation Controls
Node, edge addition and removal:
N |
Creates a new node under the mouse cursor |
J |
Creates a new edge between currently selected nodes and the node currently under the mouse cursor |
Delete |
Removes currently selected nodes and edges |
Selection:
- Drag the mouse to select objects, or click on nodes to select them.
- Hold SHIFT to add additional objects to the current selection.
Node dragging:
- Hold CTRL and drag the mouse to move currently selected nodes.
Miscellaneous Controls
K |
Toggle frames-per-second display at bottom left of network window |
L |
Toggle rendering all node labels or only labels of selected nodes and nodes under the mouse cursor |
Currently Supported Visual Properties
Nodes:
- Node fill color
- Node shape
- Node dimensions: width, height, depth (as of v0.55)
- Node labels (v0.57)
Edges:
- Edge fill color
- Edge line type (new in v0.52)
- Edge line width
Network:
- Network background color (as of v0.55)
Lighting (Under "Network" category)
- Light ambient, diffuse, specular colors
- Light position (x, y, z)
Planned Features
- Faster rendering speed
- More complete set of supported visual properties
- Add additional node shapes and edge styles as needed
- Additional 3D layouts
- Incorporation of different lighting setups to Cytoscape visual styles, and possibly addition of preset lighting configurations to existing visual styles
Source Code
The source code for the 3D renderer plugin may be found at the following SVN repository: http://chianti.ucsd.edu/svn/csplugins/trunk/toronto/yuedong/paperwing-impl
Known Issues
Node labels may not edit properly when attempting to change them through VizMapper.
- For areas containing densely packed edges, some edges may appear to flicker when viewed from a distance
- Cytoscape sometimes hangs on start-up (not known if this error is specific to the 3D renderer, but attempt to resolve by restarting Cytoscape)
- Bird's eye view may not show all nodes if the nodes are too far away from the bird's eye camera. This is caused by very wide networks.
Cytoscape Redmine Page
The Redmine page for the renderer is: http://code.cytoscape.org/redmine/projects/3d-renderer
Contact
I can be found in my post on the Cytoscape mailing list: http://groups.google.com/group/cytoscape-discuss/browse_thread/thread/aae8bb3d265d0ced
Version History
March 30, 2012
v0.6
Spherical, box, grid 3D layouts available under Layouts > 3D Layouts in the menu
- Toolbar buttons such as zoom in/out, zoom to extents, select first neighbors, and invert node selection now supported
- Renderer now pauses rendering unless a button is clicked or a button is pressed to conserve CPU/GPU and battery resources
March 19, 2012
v0.58
- Right-click pop up menu added with similar capabilities as default 2D renderer
Framerate increased by approximately 50% via TextRenderer implementation change and re-using edge segment coordinates
- Pressing K toggles frames per second display at bottom left of window
Network lighting properties for a single light editable via VizMapper and the visual style editor: light coordinates, ambient, diffuse, and specular color components
- When multiple network windows are open, inactive network viewing windows will now pause rendering
March 5, 2012
v0.57.2
- Reduced shininess of edges and nodes by a small amount (hopefully shininess will be a customizable property in the future)
- JOGL library version upgraded from 2.0-b23-20110303 to 2.0-b48-20120215
- Fixed memory leak-related slowdown caused by text rendering mechanism
February 11, 2012
v0.57.1
- Fixed dependency error during start-up
February 10, 2012
v0.57
- Re-implemented node label rendering; text now always faces camera and has persistent size
- Slightly tweaked selected node and edge color
- Fixed crash when switching between multiple network windows
- Slightly increased radius of circular edges going from a node to itself to decrease stacking when multiple self-edges are present on the same node
February 6, 2012
v0.55
Added support for previewing and editing visual styles via the VizMapper panel
- Decreased lighting on edges to give a slightly cleaner appearance
- Added support for the following visual properties: node width, height, and depth; network background color
- Node label rendering temporarily disabled while a way to rotate the text to face the camera is found
- Performed a bit of cleanup on the output messages from the console
January 31, 2012
v0.52
- Added support for drawing edges that lead from a node to itself
- Added support for the following edge line types: dashes, dots, solid lines
- Adjusted the mouse wheel zoom function to no longer move the center of rotation for shift + arrow key rotates
- Node creation now places nodes at a fixed distance from the camera
January 24, 2012
v0.5: Initial beta release