8000 GitHub - prideout/layout-viewer: WebGL renderer for chip layouts
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

prideout/layout-viewer

Repository files navigation

Layout Viewer

Rust library and CLI tool for rendering GDSII layouts with OpenGL / WebGL or converting them to SVG format.

Includes a web app that allows users to drop a GDSII file for local viewing. All work is performed in the browser and no data is sent to the server. In fact there is no server, it's just a static site hosted with GitHub Pages.

Modules

  • core contains the data model and core logic.
    • Defines a set of ECS components.
  • graphics is a simple WebGL rendering library.
    • Provides abstractions similar to libraries like THREE and Filament.
    • Knows nothing about circuits or app behavior.
    • All objects except Renderer can be constructed without a WebGL context.
  • webui defines a set of Yew components.
    • The UI for the web application lives here.
    • Components with the Page suffix are navigation targets.
  • cli provides a command-line interface and simple native window target.
  • rsutils are utilities that you could imagine being a part of std.
    • Nothing here should know about circuits or the app.

Usage examples

# Open a GL window with the Intel 4004 chip:
cargo run --quiet --bin layout-viewer -- --gl assets/gds/intel-4004.gds

# Open a much larger GDS file using a release build:
cargo run --release --quiet --bin layout-viewer -- --gl assets/gds/caravel.gds

# Generate a SVG file:
cargo run --quiet --bin layout-viewer -- --gl assets/gds/mos-6502.gds mos-6502.svg

# Deploy a local web server:
trunk serve --open

Limitations

  • Arefs are ignored (but we might fix this)
  • Magnification of elements is ignored.
  • The "absolute" flag is ignored for magnitudes and angles.
  • Text, Nodes, and Boxes are ignored.

Dependencies

  • bevy_ecs: Entity-component-system
  • gds21: GDSII parser
  • svg: SVG generation
  • wasm-bindgen: WebAssembly bindings
  • anyhow: Error handling

About

WebGL renderer for chip layouts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0