High Performance Layout Viewer and Editor for your Windows system

KLayout

KLayout

  -  301 MB  -  Freeware
  • Latest Version

    KLayout 0.30.3 (64-bit) LATEST

  • Review by

    Sophia Jones

  • Operating System

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

  • User Rating

    Click to vote
  • Author / Product

    Matthias Kofferlein / External Link

  • Filename

    klayout-0.30.3-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.

Why is this app published on FileHorse? (More info)
  • KLayout 0.30.3 (64-bit) Screenshots

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

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

What's new in this version:

Features:
- Enhancement: #2044 Different combination modes on strm2xxx tools (+ and ,)
- Bugfix: #2073 Klayout fails to read CELLNAME S_CELL_OFFSET property on Windows on big files
- Bugfix: #2075 strm2oas ignores def net routing wire extensions
- Bugfix: #2081 strm2oas a.oas,c.oas o.oas coredumps
- Bugfix: #2087 DRC: Poor fill with skew step vectors (see more fill-related topics below)
- Bugfix: #2088 Fixed a use case that generated duplicate OASIS cell IDs
- Bugfix: #2094 Performance issue in the python code to insert Regions into Shapes
- Bugfix: #2100 RNetExtractor extracts wrong RNode locations with tesselation
- Bugfix: #2102 RNetExtractor internal error
- Bugfix: Fixed automatic execution of scripts after package installation
- Now, restarting KLayout after package installation may not be needed
- Bugfix: File watcher dropped file after is was temporarily removed
- Bugfix: After deleting terminals from devices, reading old L2N/LVSDB files
- made these terminal re-appear in the netlist browser.
- Enhancement: primary and secondary device parameters are separated in
- the LVS netlist view, so it is easier to see which parameters are relevant
- Bugfix: Avoid a crash when reading OASIS files with broken code tables
- in OASIS CBLOCKs
- Enhancement: New Ruby/Python functions: Macro#current and Macro attributes
- (Macro#get_attribute, Macro#has_attribute, Macro#set_attribute, Macro#delete_attribute) These features allow passing values in and out from a macro in other ways than defining global variables and basically allow parameterized macros.
- Enhancement: Convenience function ObjectInstPath#cell
- Bugfix: Some layout queries did not render the correct path_dtrans

Bugfix: "tap" feature
- was not selecting shapes that fully overlap the view
- texts are not considered as detecting them requires potentially search a large area

Bugfix: Fixed a TODO from old issue #1470
- Enhancement: DRC function "def_output": A simple yet useful extension to obtain
- the output layout and to manipulate it (within limits)

- Bugfixes and enhancements: fill feature (see also issue #2087)
- tiles in tiled mode most not overlap when the origin is not global as tiles may use different origins
- more efficient computation of remaining fill area
- fill pattern "margin" feature simplifies keeping distance to other fill shapes or original features in multi-fill scenarios
- fixed MT issues when using the fill feature in tiled mode with multiple threads
- better compression of fill cell instances into arrays
- Enhancement: Ruby/Polygon methods set_properties and clear_properties for Cell, Layout, Shape and Instance

- Enhancement: a bunch of features that utilize expressions on polygons and other shapes
- to attach properties, filter base on properties or compute values in properties (aka "measurement features")
- PolygonFilterBase#expression_filter (to be used in Region#filter and Region#filtered) can be used to filter polygons based on KLayout expressions, including properties
- PolygonPropertiesExpressions object (to be used in Region#process and Region#processed) can be used to attach properties based on KLayout expressions, including other properties
- Same for Edges, EdgePairs and Texts

- Enhancement: handling of properties in shape merge in Region
- Region#join_properties_on_merge controls how properties and handled during shape merge
- New respective arguments in Region#merge, Region#merged
- New layer methods "merge_props" and "merged_props" in DRC (allows joining properties from same shapes on different layers)

- Enhancement: net property evaluation using KLayout expressions
- Allows implementing more complex antenna rule checking schemes for example
- Ruby/Python: LayoutToNetlist#evaluate_nets
- DRC: evaluate_nets