Skip to main content

High-Performance 3D Visualization for CAP3D Files

Project description

CAP3D-Viz: High-Performance 3D Visualization for CAP3D Files

PyPI version Python Support License: MIT DOI

CI Build PyPI Test Docs

Now Available on PyPI! Install with pip install cap3d-viz - View on PyPI

CAP3D-Viz is a high-performance Python package for parsing and visualizing 3D geometry from CAP3D files generated by capacitance solvers. It features state-machine parsing, memory-efficient streaming, and interactive 3D visualization optimized for large datasets in integrated circuit design workflows.

Key Features

  • State-Machine Parser: 70-80% reduction in condition checking with dispatch tables
  • Memory Efficient: Handles 10,000+ blocks with <8MB memory usage
  • High Performance: Parse speed of 9,882+ blocks/second
  • Interactive 3D Visualization: Real-time filtering and exploration
  • Batched Rendering: Smooth visualization of 50k+ blocks
  • Professional IC Features: Industry-standard layer colors and visualization modes
  • Comprehensive Format Support: Blocks, polygons, layers, windows, and tasks

Performance Benchmarks

Metric Performance
Parse Speed 9,882 blocks/second
Memory Usage <8MB for 10k blocks
Filter Latency <500ms for interactive operations
Rendering 50k+ blocks with batched optimization

Installation

From PyPI (Recommended)

🎉 CAP3D-Viz is now available on PyPI!

pip install cap3d-viz

Development Installation

git clone https://github.com/andykofman/RWCap_view.git
cd RWCap_view
pip install -e .[dev]

Dependencies

  • Python ≥3.8
  • NumPy ≥1.19.0
  • Plotly ≥5.0.0
  • Matplotlib ≥3.3.0

Quick Start

Basic Usage

from cap3d_viz import load_and_visualize

# Load and visualize a CAP3D file  
fig = load_and_visualize("your_file.cap3d")
fig.show()

Advanced Usage

from cap3d_viz import OptimizedCap3DVisualizer

# Create visualizer with custom settings
visualizer = OptimizedCap3DVisualizer(max_blocks_display=50000)
visualizer.load_data("large_file.cap3d")

# Create interactive visualization
fig = visualizer.create_optimized_visualization(
    show_mediums=True,
    show_conductors=True, 
    show_polys=True,
    use_batched_rendering=True,  # For large datasets
    z_slice=5.0,                 # Cross-section view
    opacity_mediums=0.3,
    opacity_conductors=0.9
)

fig.show()

Performance-Optimized Parsing

from cap3d_viz import StreamingCap3DParser

# Parse large files efficiently
parser = StreamingCap3DParser("massive_file.cap3d")
data = parser.parse_complete()

print(f"Parsed {len(data.blocks)} blocks")
print(f"Found {len(data.poly_elements)} polygonal elements")
print(f"Layers: {len(data.layers)}")

CAP3D File Format Support

CAP3D-Viz provides comprehensive support for all CAP3D elements:

Structural Elements

  • <block>: 3D rectangular volumes with basepoint and vectors
  • <poly>: Complex polygonal elements with custom 2D coordinates
  • <medium>/<conductor>: Material sections with dielectric properties

Advanced Elements

  • <layer>: IC layer definitions (interconnect, via, metal, poly, contact)
  • <window>: Simulation boundary definitions
  • <task>: Capacitance calculation targets
  • <coord>: 2D coordinate data for polygonal shapes

Example CAP3D Block

<block>
    name block1
    basepoint(-2, -2, 0)    <!-- Starting corner -->
    v1(4, 0, 0)             <!-- Edge vector 1 -->
    v2(0, 4, 0)             <!-- Edge vector 2 --> 
    hvector(0, 0, 0.3)      <!-- Height/thickness -->
</block>

Visualization Features

Interactive 3D Controls

  • Mouse Controls: Rotate, zoom, pan with intuitive interaction
  • Component Toggling: Show/hide mediums, conductors, polygons independently
  • Layer Filtering: Focus on specific IC layers with professional colors
  • Z-Slice Views: Cross-sectional visualization at any height
  • Real-time Statistics: Block counts, volume analysis, dimensional info

Professional IC Design

  • Industry-Standard Colors: Metal, via, poly, contact layer visualization
  • Level of Detail (LOD): Intelligent prioritization for large datasets
  • Batch Rendering: Optimized trace grouping for smooth interaction
  • Export Options: Save visualizations as interactive HTML files

Architecture

CAP3D-Viz uses a modular architecture for optimal performance and maintainability:

cap3d_viz/
├── data_models.py      # Core data structures (Block, Layer, etc.)
├── parser.py          # State-machine parser with streaming support
├── visualizer.py      # 3D visualization engine with caching
├── utils.py           # Convenience functions and utilities
└── __init__.py        # Main package interface

State-Machine Parser

  • Context-Aware: Only checks relevant conditions per parsing state
  • Dispatch Tables: Direct function mapping eliminates conditional chains
  • Streaming Architecture: Memory-efficient line-by-line processing
  • Pre-compiled Patterns: Cached operations for maximum speed

Scientific Applications

CAP3D-Viz is designed for researchers and engineers working with:

  • Integrated Circuit Design: Visualization of IC layouts and parasitic structures
  • Capacitance Analysis: 3D exploration of capacitive coupling effects
  • EDA Tool Integration: Workflow enhancement for design automation
  • Research Publications: High-quality figures for academic papers
  • Design Verification: Visual validation of 3D geometry structures

Documentation

Testing

Run the test suite to verify installation:

# Install development dependencies
pip install -e .[dev]

# Run all tests
pytest

# Run with coverage
pytest --cov=cap3d_viz

# Run performance benchmarks
python -m cap3d_viz.benchmarks

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

git clone https://github.com/your-repo/cap3d-viz.git
cd cap3d-viz
pip install -e .[dev]
pre-commit install

Running Tests

pytest tests/
black cap3d_viz/
flake8 cap3d_viz/
mypy cap3d_viz/

📄 Citation

If you use CAP3D-Viz in your research, please cite:

@software{cap3d_viz_2025,
  author    = {Ahmed Ali},
  title     = {{CAP3D-Viz}: High-Performance {3D} Visualization for {CAP3D} Files},
  version   = {1.0.0},
  date      = {2025-07-24},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.16406690},
  url       = {https://doi.org/10.5281/zenodo.16406690},
  repository= {https://github.com/andykofman/RWCap_view},
  type      = {software}
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • RWCap Development Team: For the CAP3D file format specification

Support


CAP3D-Viz: Advancing 3D visualization for integrated circuit design and capacitance analysis.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cap3d_viz-1.2.1.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cap3d_viz-1.2.1-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file cap3d_viz-1.2.1.tar.gz.

File metadata

  • Download URL: cap3d_viz-1.2.1.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for cap3d_viz-1.2.1.tar.gz
Algorithm Hash digest
SHA256 16e5af73cec2d45f0f3145d01ae4c1600378a059b995898b94b7ba62b48d8251
MD5 142a2cdd043a1c4bb03c1733897c1e3e
BLAKE2b-256 a38d2b02fde26e8a66c523f3ee933285079373cc6e78e28baef835f6b6f92c60

See more details on using hashes here.

File details

Details for the file cap3d_viz-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: cap3d_viz-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for cap3d_viz-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4bec6b90d090996b644f7ccf55ccd4f8ba6c0f6a4f33de4f61a175b815c18ced
MD5 eb4841d8ffbf52c032438162efd00125
BLAKE2b-256 b56ce58722daa4d624551a2614c85c708490ad36d7c42f8720bfc1175af233ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page