High Performance Layout Viewer and Editor for your Windows system

KLayout

KLayout

  -  300 MB  -  Freeware
  • Latest Version

    KLayout 0.30.0 (64-bit) LATEST

  • Review by

    Sophia Jones

  • Operating System

    Windows 8 (64-bit) / Windows 10 (64-bit)

  • User Rating

    Click to vote
  • Author / Product

    Matthias Kofferlein / External Link

  • Filename

    klayout-0.30.0-win64-install.exe

KLayout is a high-performance viewer and editor for GDSII and OASIS files, commonly used in the field of integrated circuit (IC) design.

Developed with a focus on precision, speed, and customization, KLayout has become a go-to tool for layout engineers, designers, and EDA professionals.

It supports both layout visualization and script-driven layout manipulation, making it a versatile addition to any VLSI workflow.

Main Features

GDSII & OASIS File Support: Native support for industry-standard file formats.

Advanced Viewer: High-speed zooming, panning, and layer control for complex IC layouts.

Layout Editing: Includes tools for precise geometry creation, modification, and hierarchy handling.

Scripting Support: Extend functionality using Ruby or Python scripting for automation and customization.

DRC and Verification Tools: Basic design rule checks and layout analysis capabilities.

Macro Development: Create and integrate macros to streamline repetitive tasks.

Cross-Platform Support: Available for Windows, macOS, and Linux.

User Interface

KLayout features a clean and modular UI designed for technical users. The layout viewer is front and center, surrounded by layer controls, property windows, and an output console.

The interface supports tabs, customizable toolbars, and dockable panels. While it may seem dense to beginners, experienced users will appreciate the rich feature access and minimal distractions.

Installation and Setup
  • Visit the official KLayout website.
  • Download the Windows installer (available in both 32-bit and 64-bit versions).
  • Run the installer and follow the prompts.
  • Once installed, you can launch the application from the Start menu.
The software is self-contained and does not require additional libraries or packages. Optional scripting environments can be configured post-installation.

How to Use
  • Open a layout file (.gds or .oas).
  • Use the layer panel to toggle visibility or change layer colors.
  • Zoom and pan to inspect layout details.
  • Switch to edit mode to draw or modify geometries.
  • Use the script console or load a macro for automation.
  • Save edits or export to supported formats.
FAQ

Is KLayout free to use?
Yes, KLayout is open-source and completely free for both personal and commercial use.

Can I use KLayout for DRC checks?
Yes, it includes a scripting interface for running design rule checks, although it’s not a full DRC engine like Calibre.

What scripting languages are supported?
KLayout supports Ruby and Python for macro and automation scripting.

Can I edit GDS files directly?
Yes, you can edit geometries, instances, and layers directly within the tool.

Does it support hierarchical layouts?
Absolutely. KLayout handles hierarchical designs efficiently and allows navigation through cell instances.

System Requirements

OS: Windows 11, 10, 8 or 7

RAM: Minimum 4 GB (8 GB or more recommended)

CPU: Dual-core or better

Disk Space: ~200 MB for installation

Graphics: OpenGL-compatible GPU recommended

PROS
  • Completely free and open-source
  • Supports scripting and automation
  • Handles large and complex layouts efficiently
  • Customizable and extendable
  • Cross-platform compatibility
CONS
  • UI can feel outdated
  • Lacks full DRC/LVS capabilities
  • Limited official documentation
  • No native schematic editor
Conclusion

It stands out as a powerful and efficient layout tool ideal for IC designers looking for a free alternative to commercial EDA software. Its support for scripting, hierarchical layout handling, and lightweight design makes it particularly attractive for research, education, and even professional workflows.

  • KLayout 0.30.0 (64-bit) Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    KLayout 0.30.0 (64-bit) Screenshot 1
  • KLayout 0.30.0 (64-bit) Screenshot 2
  • KLayout 0.30.0 (64-bit) Screenshot 3
  • KLayout 0.30.0 (64-bit) Screenshot 4
  • KLayout 0.30.0 (64-bit) Screenshot 5

What's new in this version:

Features:
- Bugfix: #1996 More robust triangulation
- Bugfix: #2002 Path to polygon conversion issue
- Enhancement: Better support for user properties

The property management has been overhauled. Properties are not globally scoped. The "Layout" class now provides class methods to convert property IDs to property hashes and back. It is no longer required to know the origin of a property ID. Other changes are:
- New classes "BoxWithProperties", "EdgeWithProperties", "PolygonWithProperties", "SimplePolygonWithProperties", "PathWithProperties", "EdgePairWithProperties", "TextWithProperties" and corresponding "D..." classes. Many functions accept these objects now in addition to the property-less "Box", "Edge" etc. objects. Many functions now deliver property-annotated objects instead of the plain ones.
- "EdgePairFilter#property_glob", "EdgePairFilter#property_filter", "EdgePairFilter#property_filter_bounded" creates filters for edge pair objects, which can be used on "EdgePairs" containers to filter by properties.
- The same is available for "EdgeFilter" (for filtering edges in "Edges" containers), "PolygonFilter" (for filtering polygons in "Region" containers), and "TextFilter" (for filtering texts in "Texts" containers)
- New method "process_with_properties" for "PolygonOperator", "EdgeOperator", "EdgePairOperator" and "TextOperator"

- Enhancement: New class "PolygonNeighborhood"
- This is a visitor to obtain all "neighboring" polygons for each polygon in a Region. Currently, neighborhood is defined by the bounding box of the primary polygons.
- Enhancement: Layout queries can use "$_" to refer to the current cell now

Enhancement: New methods:
- "LayoutToNetlist#build_net", "build_nets" and "build_all_nets" do not
- "LayoutToNetlist#layer_index" from a name
- "LayoutToNetlist#texts_by_index" and "LayoutToNetlist#texts_by_name"
- "LayoutToNetlist#original_layout" and "LayoutToNetlist#original_top_cell"
- "LayoutToNetlist#polygons_of_net" and "LayoutToNetlist#texts_of_net"
- "Device#terminal_ref"
- New "text_prop" argument in Texts#polygons (texts can transfer their string to the generated polygons as user properties)
- New methods "Polygon#delaunay", "DPolygon#delaunay", "SimplePolygon#delaunay" and "DSimplePolygon#delaunay"