dotspace-0.3.0 is not a library.
Visit the last successful build:
dotspace-0.4.0
dotspace
Explore your Graphviz dot files in interactive 3D space. Transform static graph diagrams into navigable 3D experiences.
Features
- 3D Visualization: Renders Graphviz dot files as interactive 3D scenes
- Node Types: Different shapes and colors for various node types (organization, team, user, etc.)
- Hierarchical Layout: Automatic vertical and radial positioning based on node levels
- Interactive Navigation:
- Arrow keys for movement
- Shift+Arrow keys for camera rotation
- +/- keys for zoom (Mac-friendly)
- Unix Philosophy: Supports both file input and stdin piping
- Clear Text Labels: Node labels rendered as overlay text for clarity
Installation
Prerequisites
- Rust 1.75 or higher (2024 edition)
- System dependencies for Bevy (automatically handled on most platforms)
Building from Source
The binary will be available at target/release/dotspace.
Usage
Basic Usage
# Visualize a dot file
# Pipe from another command
|
# Generate and visualize on the fly
|
Command Line Options
Controls
| Key | Action |
|---|---|
| Arrow Keys | Move camera forward/backward/left/right |
| Shift + Arrow Keys | Rotate camera around center |
| + / - | Zoom in/out |
| PageUp / PageDown | Alternative zoom controls |
| ESC / Q | Exit application |
Dot File Features
dotspace supports standard Graphviz dot syntax with additional attributes for 3D visualization:
Node Types
Specify node types for different shapes and colors:
digraph Organization
Available node types:
organization- Red cube (large)lob(Line of Business) - Orange cylindersite- Blue torusteam- Green sphereuser- Purple capsule (small)- (default) - Gray sphere
Hierarchical Levels
Use the level attribute to control vertical positioning:
digraph Hierarchy
Examples
The repository includes several example dot files in the examples/ directory:
# Organizational hierarchy
# Network topology
# Software architecture
# Simple directed graph
|
Development
Running Tests
Linting
# Run clippy with CI settings
# Auto-fix clippy warnings
# Format code
Development Workflow
# Full check (format, lint, test, build)
# Run with example file
# Run with stdin example
Architecture
dotspace is built with:
- Bevy 0.16: Modern Rust game engine for 3D rendering
- petgraph: Graph data structure management
- clap: Command-line argument parsing
The visualization uses:
- Custom dot file parser (handles subset of Graphviz syntax)
- Hierarchical layout algorithm with radial distribution
- Bevy's entity-component system for interactive 3D scenes
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Ensure tests pass and clippy is happy (
make all) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with Bevy Engine
- Inspired by the need to visualize complex organizational hierarchies and system architectures in 3D