Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for IC-Viewer

Modern chip design lives inside powerful but heavy EDA tools. If you want to inspect a layout, you usually need to install complex software, understand unfamiliar interfaces, and work in an environment that was never designed for fast sharing or collaborative review. For students and small teams, this creates a huge barrier: layouts exist, but they are not easily explorable, explainable, or shareable.

We wanted to change that experience.

ICViewer Cockpit was built around a simple idea: what if a chip layout could be opened like a webpage? Instead of treating GDSII as an opaque, final artifact, we treat it as something that can be explored, interpreted, and communicated. By converting GDS geometry into a web-native 3D format (glTF), we bring layouts into the browser, where they become interactive, navigable, and responsive.

But visualization alone is not enough. A rotating 3D model does not help an engineer understand a design. So we designed ICViewer as a “cockpit” rather than a viewer. When a layout is loaded, it is not just rendered — it is structured. Layers become controllable views, hierarchy becomes explorable context, and physical design metrics become immediately visible. Review markers highlight meaningful engineering points such as timing concerns or power distribution, allowing users to focus on what actually matters.

On top of this structured representation, we introduced an AI-assisted layer. Instead of a generic chatbot, the system provides targeted explanations and guided actions. It can summarize a layout, identify dominant layers, describe structural characteristics, and suggest how to explore the design effectively. This turns static geometry into something closer to an explainable system.

A key design goal was compatibility with real workflows. ICViewer supports not only raw GDSII, but also OpenROAD-style design bundles with sidecar files such as manifest, metrics, and markers. This means the platform is not limited to toy examples — it can reflect real physical design outputs and preserve engineering context across the pipeline.

Building this system required bridging two very different worlds. On one side is EDA data: hierarchical, dense, and geometry-heavy. On the other side is the web: performance-sensitive, GPU-driven, and user-centric. We designed a pipeline that extracts geometry from GDS, converts it into optimized mesh data, and enriches it with metadata so it remains meaningful after conversion. At the same time, we had to carefully manage performance to ensure that even complex layouts remain smooth and responsive in the browser.

One of the biggest challenges was not technical, but conceptual: avoiding the trap of building “just another viewer.” Every feature had to answer a real question: does this help someone understand or review a chip? This is why we focused on explainability, review workflows, and shareable state. Users can save viewpoints, annotate observations, and generate links that fully capture the current review context. The layout is no longer just something you look at — it becomes something you can communicate.

Through this project, we learned how deeply structured IC layout data really is, and how much value is lost when it is treated as raw geometry. We also learned that AI is most useful not when it replaces engineering reasoning, but when it augments it with clarity and guidance. Most importantly, we learned how to turn a traditionally heavy, specialized workflow into something lightweight, accessible, and collaborative.

ICViewer Cockpit is a step toward making chip design more open and interactive. In the future, we want to extend support to more formats, enable real-time multi-user collaboration, and integrate deeper analysis such as timing and congestion insights. Our goal is to move from “viewing layouts” to truly “understanding and reviewing them” — anywhere, instantly, in the browser.

Built With

Share this project:

Updates

Submission history