Skip to content

GDSII

GDSII files describe 2D layout geometry — typically mask layers in semiconductor or MEMS design. Quanscient Allsolve extrudes selected layers to defined thicknesses and positions to produce a 3D model suitable for meshing and simulation.

This guide covers the GDS import editor introduced with the current geometry pipeline.

GDSII import can be roughly split into these steps:

  1. Select Edit model to enable geometry editing.
  2. Select + next to Geometry elements and choose Import file.
  3. Select a GDSII file (.gds or .gds2).
  4. Wait while the application parses the file and loads Available layers.
  5. Configure Layer stacks, Absolute layers, and Import settings.
  6. Select Save and build the import element.
  7. Select Confirm model changes to finalize the model and lock entity tags.

After the file is uploaded, the GDS content is parsed but no 3D model exists yet. The 3D model is created when the import element is built.

At least one layer must be added to a stack or to Absolute layers before you can save.

The GDS import editor has three main areas for layer configuration and import options:

  • Available layers
    • All layers in the GDS file, identified by layer number and datatype
  • Layer stacks / Absolute layers
    • Include layers in the 3D model by dragging them here
    • Give thickness and position to each layer
  • Import settings
    • Units, extrusion quality, and geometry processing options

Available layers lists every layer/datatype pair found in the uploaded file. Each entry is identified by its layer number and datatype, shown as layer/type (for example 47/0). A usage count appears when that layer is already included in a stack or absolute list.

Display names are not read from the GDS file. After you add a layer to a stack or absolute list, you can type an optional name for that instance (see Layer naming).

To add a layer:

  • Drag it from Available layers into a Layer stack or Absolute layers, or
  • Select Add next to the layer and choose a destination stack, a new stack, or Absolute layers.

The same GDS layer can be added more than once — for example, to build two separate stacks that both use layer 47.

Layer stacks are relative extrusions: layers in a stack are placed one on top of another, starting from a Stack base Z value.

Each stack is independent. Use multiple stacks when parts of the layout should be extruded at different Z locations — for example, two separate device regions in the same GDS file.

For each stack you can:

  • Add stack — create an empty stack.
  • Set Stack base Z — the Z coordinate where the bottom of the stack starts.
  • Add layers from Available layers (bottom to top within the stack).
  • Set Thickness for each layer. The Z start column shows the computed start position of each layer within the stack.
  • Reorder layers by dragging, or use the layer menu (Bring to top, Move up, Move down, Send to bottom).
  • Copy stack, Clear stack, or Delete stack from the stack menu.

Layers in a stack are extruded sequentially: each layer’s top surface becomes the base for the next layer in that stack.

Absolute layers are placed at explicit Z start positions independent of a stack. Use them for:

  • Cut-out or through layers at a fixed height.
  • Layers that span a specific Z range without following a stacked sequence.
  • Layers that must start at an exact coordinate rather than relative to another layer.

For each absolute layer, set Thickness and Z start directly.

A layer can be converted between stacked and absolute modes from the layer menu: Convert to absolute or Convert to stacked.

Import settings on the right side of the editor control units and geometry processing during extrusion.

SettingDescription
NameGeometry element name in the project.
EnabledWhether the import contributes to the model when built.
UnitsDistance unit for layer thickness and Z positions: nanometers, micrometers, millimeters, or meters.

Thickness values can include units in expressions (for example 0.2e2 nm) to override the selected unit for individual layers.

Unification mode controls whether boundary curve discretization is unified across layers, and whether that happens before or after circle and spline creation:

ModeEffect
OffNo unification.
BeforeUnify discretization before circle/spline fitting.
AfterUnify discretization after circle/spline fitting.

Unification helps identical shapes on different layers share the same vertex layout, which improves robustness in meshing and later geometry operations.

Merge tolerance sets the distance within which vertices and edges are merged, small gaps are closed, and boundary classification is decided.

These settings control when the importer breaks a polyline into separate curve segments during circle and spline detection:

SettingDescription
Angle thresholdMaximum angle between consecutive polyline segments before a break is forced (degrees).
Ratio thresholdMaximum length ratio between consecutive segments before a break is forced.
SettingDescription
Max arc angleMaximum arc angle per segment when detecting circular arcs. Curves with fewer sample points than required for a full circle are fitted as splines instead.
Circle fit toleranceHow closely a fitted circle must match the original polyline. If any point falls outside the tolerance, a spline is used instead.
MethodDescription
PolylinePreserves the original polyline geometry. Fewer vertices are fixed, giving the mesher more freedom. Curvature information is not available for curvature-based meshing.
IterativeApproximates the curve with a third-order Bézier spline to a given Spline tolerance, up to Max iterations. Enables curvature-based mesh refinement.

Layer mapping can be imported from or exported to a CSV file. This is useful for large stackups, design iterations, or sharing configurations between projects.

  1. Select Upload layer mapping file in the GDS import header.
  2. Upload a .csv file (UTF-8, comma-, semicolon-, or tab-separated).
  3. If column headers are not recognized automatically, map each required field to a CSV column.
  4. Select Import.

Required CSV fields:

FieldDescription
Layer numberGDS layer ID (integer). Must match a layer in the uploaded file.
Layer typeGDS datatype (integer). Together with layer number, identifies the layer.
Layer thicknessThickness expression in the project distance unit.
Starting z-coordinateAbsolute Z start. Required unless Previous layer index is set.

Optional fields:

FieldDescription
Previous layer indexZero-based row index of the layer this row stacks on. When set, Starting z-coordinate is ignored for stacking.
Layer nameDisplay name for the layer instance.

Each row must have a non-empty thickness and either a starting Z coordinate or a valid previous layer index. Rows that reference unknown layer/datatype pairs or missing values are skipped with a warning.

Example:

LayerID,LayerType,Thickness,AbsoluteZ,PreviousLayerIndex,Name
47 ,0 ,0.1 ,0.06 , ,Metal bottom
48 ,0 ,0.2 , ,0 ,Metal middle
49 ,0 ,0.2 , ,1 ,Metal top
47 ,0 ,0.1 ,0.5 , ,Second stack layer 47

Row 2 stacks on row 0 (layer 48 on layer 47). Row 4 starts a second stack with layer 47 at absolute Z = 0.5.

  1. Select Download in the GDS import footer.
  2. Choose Layer mapping CSV.
  3. Select a delimiter (comma or semicolon) and export.

The exported file uses columns LayerID, LayerType, Thickness, AbsoluteZ, PreviousLayerIndex, and Name, reflecting the current layer configuration.

CSV import and export run in the browser; the file is not sent to the server during mapping.

When a layer is added to a Layer stack or Absolute layers, it automatically gets a Name/ID field:

  • The placeholder shows the layer number and datatype (for example 47/0).
  • Type an optional display name to label that instance in the editor. The name field is focused automatically when you add an absolute layer, so you can enter a name immediately.
  • Use Edit layer name in the layer menu to rename a layer later.

Names are optional. If you leave the field empty, the layer is shown by its layer/type identifier.

Custom names help when the same GDS layer appears in multiple stacks or when numeric IDs are hard to tell apart. They are stored with the layer configuration and appear in CSV export. They do not replace the underlying layer number and datatype used to match geometry from the GDS file.

You can also assign names through CSV import (see CSV layer mapping).