---
page_id: wsd-creating-masks-ourselves-446d8fca
type: context-page
schema_version: 1
template_id: discord-page
template_version: template-0.1.0
title: "Thread: Creating masks ourselves"
slug: wsd-creating-masks-ourselves-446d8fca
route: /evidence/i-information/questions/threads/creating-masks-ourselves
section: reference
access: public
summary: 25 Discord messages from ℹ️ - Information/⁉️-questions/threads/creating-masks-ourselves.md.
status: published
asset_base: .
home_href: /
md_url: /evidence/i-information/questions/threads/creating-masks-ourselves.md
toc_enabled: true
talk_enabled: false
agent_view_enabled: true
copy_buttons_enabled: true
footer_enabled: true
search_indexed: true
tags: [discord, wafer-space, archive]
last_updated: 2026-08-19
talk_url: /evidence/i-information/questions/threads/creating-masks-ourselves.talk.md
talk_route: /evidence/i-information/questions/threads/creating-masks-ourselves/talk
---

# Thread: Creating masks ourselves

Category: **ℹ️ - Information**
Parent channel: **#⁉️-questions**
Thread ID: `1525828665655558280`

Messages: **25**

## message-1525828665655558280

**2026-07-12T11:38:22.418+00:00 — rahulbhagwat**

- Message ID: `1525828665655558280`
- Author ID: `488155070052171816`
- Nickname: rahulbhagwat
- User name: rahulbhagwat
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1525828665655558280
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
I was talking to a small foundry about pricing for their 350 nm node recently, and some of the cost was NRE (to create the mask etc.)

Got me thinking about if we can reduce mpw costs with open nodes if we do some of this work ourselves? even technically it would be cool to have the mask preparation flow be open sourced for open PDKs.

Did some reading online and looks like usually foundries do this themselves as it's highly specialized and they don't want to give manufacturing tool specific data out but it would be cool to still have this option available for open PDKs.

Does anyone have any info about this?
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1525828851811483648

**2026-07-12T11:39:06.801+00:00 — rahulbhagwat**

- Message ID: `1525828851811483648`
- Author ID: `488155070052171816`
- Nickname: rahulbhagwat
- User name: rahulbhagwat
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1525828851811483648
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
looks like there's also a standardised mask set format spec
https://store-us.semi.org/products/p04400-semi-p44-specification-for-open-artwork-system-interchange-standard-oasis-%C2%AE-specific-to-mask-tools
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1525841012616990820

**2026-07-12T12:27:26.163+00:00 — tnt (@246tnt)**

- Message ID: `1525841012616990820`
- Author ID: `596068704471482370`
- Nickname: tnt
- User name: 246tnt
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1525841012616990820
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
(1) we don't even have enough info about the open process to generate the mask. Sometimes we don't even know what those masks are.
(2) Even if we did, there is no way the foundry would even let you ... a bad mask could cause issues bringing their production line down.
```

**Reactions**

- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/1f44d-27259.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png
<details>
<summary>Reactions data</summary>

```json
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2026-07_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2026-07_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png",
        "color": null,
        "discriminator": "0000",
        "id": "488155070052171816",
        "isBot": false,
        "name": "rahulbhagwat",
        "nickname": "rahulbhagwat"
      }
    ]
  }
]
```

</details>

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1525841533872509133

**2026-07-12T12:29:30.44+00:00 — tnt (@246tnt)**

- Message ID: `1525841533872509133`
- Author ID: `596068704471482370`
- Nickname: tnt
- User name: 246tnt
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1525841533872509133
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
ATM they even wince at minor antenna violations ... so I don't see them just accept raw masks blindly.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1525848810033512499

**2026-07-12T12:58:25.212+00:00 — rahulbhagwat**

- Message ID: `1525848810033512499`
- Author ID: `488155070052171816`
- Nickname: rahulbhagwat
- User name: rahulbhagwat
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1525848810033512499
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1525841012616990820
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1525841012616990820"
}
```

</details>

**Content**

```text
that's interesting, i never thought about how design mistakes could bring down a production line, but makes sense.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529468577219088554

**2026-07-22T12:42:04.961+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529468577219088554`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529468577219088554
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1525848810033512499
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1525848810033512499"
}
```

</details>

**Content**

```text
You also need to be aware that the shapes you design are not the ones that will be put on the mask. The shapes will go through [OPC](https://en.wikipedia.org/wiki/Optical_proximity_correction) before put on the mask to correct for the 2D (non-linear) low-pass filtering of lithography.
You don't have the information to be able to do the OPC and I don't think you will be able to get that information.
```

**Embeds**

- Resolved media URL: https://en.wikipedia.org/wiki/Optical_proximity_correction
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/Optical_proximity_correction-99F70.png
<details>
<summary>Embeds data</summary>

```json
[
  {
    "description": "Optical proximity correction (OPC) is a photolithography enhancement technique commonly used to compensate for image errors due to diffraction or process effects. The need for OPC is seen mainly in the making of semiconductor devices and is due to the limitations of light to maintain the edge placement integrity of the original design, after pro...",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 1200,
      "url": "2026-07_media/Optical_proximity_correction-99F70.png",
      "width": 816
    },
    "timestamp": null,
    "title": "Optical proximity correction",
    "url": "https://en.wikipedia.org/wiki/Optical_proximity_correction"
  }
]
```

</details>

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png",
        "color": null,
        "discriminator": "0000",
        "id": "488155070052171816",
        "isBot": false,
        "name": "rahulbhagwat",
        "nickname": "rahulbhagwat",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529468820807356586

**2026-07-22T12:43:03.037+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529468820807356586`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Default`
- Edited: 2026-07-22T12:43:18.121+00:00
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529468820807356586
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
BTW, although it is called *optical* proximity correction it also takes into account other processing effects like etch.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529469062269370499

**2026-07-22T12:44:00.606+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529469062269370499`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Default`
- Edited: 2026-07-22T12:44:17.027+00:00
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529469062269370499
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
And even if you would be able to do it, I don't think a fab will ever except masks not from a qualified mask supplier.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529470712190996627

**2026-07-22T12:50:33.978+00:00 — namibj**

- Message ID: `1529470712190996627`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529470712190996627
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
The OPC aspects would likely be among the least secret aspects there, going by that the wavelength of light is known, AFAIK the type of mask (negative/positive/phase-shift??) is documented (or was that just for sky130, not gf180mcuD?), and it takes only a few test features if done explicitly or likely just a couple dies I guess distributed well across the reticle and wafer scanned under an electron microscope being compared with the actual (post-OPC-editing) masks responsible for the studied shapes, to calibrate a model for like https://opg.optica.org/oe/fulltext.cfm?uri=oe-33-17-37229 or https://arxiv.org/html/2606.00228v1 (the latter literally has https://github.com/laiyao1/LithoGRPO linked in the abstract!)
```

**Embeds**

- Resolved media URL: https://github.com/laiyao1/LithoGRPO
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/LithoGRPO-15647
<details>
<summary>Embeds data</summary>

```json
[
  {
    "color": "#1E2327",
    "description": "[ICML 2026] LithoGRPO: Fast Inverse Lithography via GRPO Reinforced Flow Matching - laiyao1/LithoGRPO",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 600,
      "url": "2026-07_media/LithoGRPO-15647",
      "width": 1200
    },
    "timestamp": null,
    "title": "GitHub - laiyao1/LithoGRPO: [ICML 2026] LithoGRPO: Fast Inverse Lit...",
    "url": "https://github.com/laiyao1/LithoGRPO"
  }
]
```

</details>

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529472789650608250

**2026-07-22T12:58:49.283+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529472789650608250`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529472789650608250
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
Both the exact exposure conditions (NA, conventional/annular/quadruple illumination) and the resist are considered trade secrets and are critical to be able to do OPC.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529472901034541228

**2026-07-22T12:59:15.839+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529472901034541228`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529472901034541228
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
resist = photosenstive layer.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529478784065994782

**2026-07-22T13:22:38.463+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529478784065994782`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529478784065994782
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1529470712190996627
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1529470712190996627"
}
```

</details>

**Content**

```text
I don't see anything of substance in that repo; only shotcounting analysis.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
        "color": null,
        "discriminator": "0000",
        "id": "262706220073222144",
        "isBot": false,
        "name": "namibj",
        "nickname": "namibj",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529519715280490657

**2026-07-22T16:05:17.225+00:00 — namibj**

- Message ID: `1529519715280490657`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529519715280490657
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
At least to my understanding the optics themselves at least as far as needed to be understood to pull off decent inverse lithography on a process node that does not utilize any multi patterning at all, is not under so much secrecy/"trade secret" (of the genuine, warranted kind) that it has a legitimate reason to block us from knowing enough detail/nuances about how the mask shapes print, as we'd need to calibrate and then add an ILT tech to the PDK.... though I did now in the past few minutes since posting that read that the above Github doesn't yet include anything but their `FastShotCounter`, the `ShotCounter` reference baseline for that, "plus the comparison/plotting example". Though they _are_ mentioning that they are planning to ("TODO (coming soon):" release the Group Relative Policy Optimization reinforcement-learning fine-tuning code, Flow-matching prior (training + pretrained checkpoints), Physics-based ILT reward and lithography simulator, End-to-end inference / mask-optimization pipeline, and some IMO far less necessary Datasets and evaluation scripts
...


... I particularly remembered https://www.semanticscholar.org/reader/765568c040eddfcfc17a578b3a0b82ece5223058 (`arXiv:2303.08435v4`), which encodes the physics of
["coherent imaging especially with single-wavelength light in linear media with no birefrigence can be appropriately modeled as complex-valued _'phasors'_ in place of classic intensity amplitude and will provide a good approximation to finer physical reality for tasks that are about understanding the interference pattern at the target from several independent mask openings/light paths that have been understood and their phasors calculated individually (in isolation) as long as they are all fed by the same coherent source in the situation where their combined effect on the image pattern wants to be understood"]
_directly into the model's mathematical structure_
through the "Sum of Coherent Sources Approach".
```

**Embeds**

- Resolved media URL: https://www.semanticscholar.org/reader/765568c040eddfcfc17a578b3a0b82ece5223058
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/semantic_scholar_og-88FDF.png
<details>
<summary>Embeds data</summary>

```json
[
  {
    "description": "An academic search engine that utilizes artificial intelligence methods to provide highly relevant results and novel tools to filter them with ease.",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 630,
      "url": "2026-07_media/semantic_scholar_og-88FDF.png",
      "width": 1200
    },
    "timestamp": null,
    "title": "[PDF] Physics-Informed Optical Kernel Regression Using Complex-valu...",
    "url": "https://www.semanticscholar.org/reader/765568c040eddfcfc17a578b3a0b82ece5223058"
  }
]
```

</details>

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529519815482544290

**2026-07-22T16:05:41.115+00:00 — namibj**

- Message ID: `1529519815482544290`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529519815482544290
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1529478784065994782
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1529478784065994782"
}
```

</details>

**Content**

```text
Yeah I realized after that message 🙁
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_frown",
        "id": "",
        "imageUrl": "2026-07_media/1f641-E1429.svg",
        "isAnimated": false,
        "name": "🙁"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
        "color": null,
        "discriminator": "0000",
        "id": "728516105680846892",
        "isBot": false,
        "name": "chips4makers",
        "nickname": "Chips4Makers aka Staf Verhaegen",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529520817157701692

**2026-07-22T16:09:39.933+00:00 — namibj**

- Message ID: `1529520817157701692`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529520817157701692
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1529472789650608250
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1529472789650608250"
}
```

</details>

**Content**

```text
hmmmm, I thought at least the imaging even if not the chemistry was by now no longer a real secret, it's not like they cook their steppers up in-house, or that this was so bleeding edge that a normal competitor wouldn't already have had plenty of time to try out the options themselves.
Though I don't think the actual NA and illumination pattern is actually required to be known to pull off `arXiv:2303.08435v4`.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
        "color": null,
        "discriminator": "0000",
        "id": "728516105680846892",
        "isBot": false,
        "name": "chips4makers",
        "nickname": "Chips4Makers aka Staf Verhaegen",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529522562764243094

**2026-07-22T16:16:36.118+00:00 — namibj**

- Message ID: `1529522562764243094`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529522562764243094
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
But you're right in so far as that by the looks of it, we don't yet have actual runnable code published that would pull off ILT/non-classic OPC without spamming shots for the mask that the mask shop would rapidly start billing a lot extra for.
Nor do we have reason to expect to get ground-truth training data of lithography prints resulting from known masks for the relevant layers, as some of those seem to be consumed too indirectly by the processing to be anywhere close enough to directly observable with even a fancy electron microscope (incl. extra element detection and FIB machining and all those) from finished dies, and I certainly don't expect the fab to hand over ground truth reference data for a major process like this one, measured between litho and those follow up steps.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529526150852772012

**2026-07-22T16:30:51.585+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529526150852772012`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529526150852772012
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
From the repo you linked to you can come to following repo: https://github.com/shelljane/lithobench (and I think there is also a related paper). What I see is that the repo seems to only consider images of the printed structures in best focus and best exposure but ILT is actually mostly needed to optimize the process window e.g. shape variations over the focus and exposure non-uniformity you have in your exposure system.
So when I look at that repo I get the feeling of some people want to show AI/ML can solve any problem without knowing fully the actual problem they are solving.
BTW, for the open source PDKs you don't need ILT as that would make masks too expensive. You only need it for 22nm and below for 193nm litho. I don't know about EUV as I left litho group @ imec before we came to that stage.
```

**Embeds**

- Resolved media URL: https://github.com/shelljane/lithobench
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/lithobench-7E710
<details>
<summary>Embeds data</summary>

```json
[
  {
    "color": "#1E2327",
    "description": "LithoBench: Benchmarking AI Computational Lithography for Semiconductor Manufacturing - shelljane/lithobench",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 600,
      "url": "2026-07_media/lithobench-7E710",
      "width": 1200
    },
    "timestamp": null,
    "title": "GitHub - shelljane/lithobench: LithoBench: Benchmarking AI Computat...",
    "url": "https://github.com/shelljane/lithobench"
  }
]
```

</details>

**Reactions**

- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/2764-A3D25.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07_media/8f2f2e5b02fa09674ff1e308e6ddd24f-2EEA5.png
<details>
<summary>Reactions data</summary>

```json
[
  {
    "count": 1,
    "emoji": {
      "code": "heart",
      "id": "",
      "imageUrl": "2026-07_media/2764-A3D25.svg",
      "isAnimated": false,
      "name": "❤️"
    },
    "users": [
      {
        "avatarUrl": "2026-07_media/8f2f2e5b02fa09674ff1e308e6ddd24f-2EEA5.png",
        "color": null,
        "discriminator": "0000",
        "id": "1340064544567070720",
        "isBot": false,
        "name": "christoph_36502",
        "nickname": "Christoph"
      }
    ]
  }
]
```

</details>

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529572352008917053

**2026-07-22T19:34:26.799+00:00 — namibj**

- Message ID: `1529572352008917053`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529572352008917053
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1529526150852772012
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1529526150852772012"
}
```

</details>

**Content**

```text
sky130's hand-crafted-tuned-OPC needs are the reason why we can't use the foundry standard cell local-interconnect DRC's outside of those cells; while the earlier ILT works seemed to not put as much focus on mask writer shot economy, the more recent ones like e.g. that LithoGRPO _very much_ put in effort to not use excessive shot count.

What you need for 22nm and below is multi-patterning _on top of some kind of ILT/OPC tactics,_ because you're unable to image economic pitches even if you can squeeze desired gate widths out of a single exposure.

Nothing about ILT _in principle_ necessitates spending large quantities of mask writer shots, it's only the early works that paid zero respect to the traditional rectangle writers and effectively assumed a pixel writer if not even assuming some kind of grayscale-variable-like phase shift mask (or similar) to gain continuos control.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
        "color": null,
        "discriminator": "0000",
        "id": "728516105680846892",
        "isBot": false,
        "name": "chips4makers",
        "nickname": "Chips4Makers aka Staf Verhaegen",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529574480580448407

**2026-07-22T19:42:54.29+00:00 — namibj**

- Message ID: `1529574480580448407`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529574480580448407
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
ILT is just closed loop automatic tuning of OPC features, at least if targeting traditional mask writers.
It's just that you can't enumerate the OPC features that would be needed, for all possible affordably printable (if only you knew what mask prints that and is affordable: there is one by definition) structures, unless you're working on some highly regular device pitch (_cough_ FinFET), so for these larger bulk-CMOS processes you either accept the excessive DRC limitations to design density from only using fixed rule based OPC features (banning printable but not-obviously-so fine structures via DRC) or you use an ad-hoc automatic feedback-loop-based algorithm to synthesize affordable OPC features for arbitrary fine structures you encounter during mask gen.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529581855374835933

**2026-07-22T20:12:12.578+00:00 — namibj**

- Message ID: `1529581855374835933`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529581855374835933
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
E.g. there has to be a reason why on sky130A, `(difftap.2)` limits custom FETs to 0.42 width but `(difftap.2b)` allows standard cells to use FETs with only 0.36 width.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529757963902910515

**2026-07-23T07:52:00.123+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529757963902910515`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Reply`
- Edited: 2026-07-23T07:52:28.91+00:00
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529757963902910515
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1529574480580448407
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1529574480580448407"
}
```

</details>

**Content**

```text
That's not how the ILT term is used in the lithography world. In the lithography world the method of iterating over mask shapes variations to improve the printed image based on a model of your printing system is called model based OPC. ILT is used there for techniques that mathematically compute the mask shapes based on wanted shapes in one go. Some iteration may be done afterwards to increase manufacturability of the mask.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
        "color": null,
        "discriminator": "0000",
        "id": "262706220073222144",
        "isBot": false,
        "name": "namibj",
        "nickname": "namibj",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1529760964587688016

**2026-07-23T08:03:55.542+00:00 — Chips4Makers aka Staf Verhaegen (@chips4makers)**

- Message ID: `1529760964587688016`
- Author ID: `728516105680846892`
- Nickname: Chips4Makers aka Staf Verhaegen
- User name: chips4makers
- Type: `Default`
- Edited: 2026-07-23T08:04:39.865+00:00
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529760964587688016
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Content**

```text
Where LithoGRPO seems to differ from the proprietary model based OPC tools is that for the latter sub-resolution assist features are added by rules as LithoGRPO puts them and iterates over them in the optimization phase. So the outcome looks like the outcome of the ILT techniques used in the lithography world.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1529842028052086964

**2026-07-23T13:26:02.578+00:00 — namibj**

- Message ID: `1529842028052086964`
- Author ID: `262706220073222144`
- Nickname: namibj
- User name: namibj
- Type: `Reply`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1529842028052086964
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-07/2026-07.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1525828665655558280/1529760964587688016
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1525828665655558280",
  "guildId": "1361349522684510449",
  "messageId": "1529760964587688016"
}
```

</details>

**Content**

```text
Well, yeah, they use modern ML techniques to produce mask shop friendly (at least on an even level with traditional OPC) masks for the desired print, as the shot count metrics provide a horrible loss function landscape if tried to solve with vaguely similar numerical setups as the perfectionist ILTs do (which would work but can't affordably be written with the equipment mask shops want to use to produce masks for these bulk CMOS processes).
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-07_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-07_media/2649a6faac7843086b3d82b1d8f657a3-81998.png",
        "color": null,
        "discriminator": "0000",
        "id": "728516105680846892",
        "isBot": false,
        "name": "chips4makers",
        "nickname": "Chips4Makers aka Staf Verhaegen",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1532916121475354644

**2026-08-01T01:01:23.564+00:00 — Tim 'mithro' Ansell (@mithro_)**

- Message ID: `1532916121475354644`
- Author ID: `169786952432746498`
- Nickname: Tim 'mithro' Ansell
- User name: mithro_
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1532916121475354644
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-08/2026-08.json

**Content**

```text
There is https://github.com/vincentlv/DimmiLitho and https://github.com/TorchOPC/TorchLitho
```

**Embeds**

- Resolved media URL: https://github.com/vincentlv/DimmiLitho
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-08/2026-08_media/DimmiLitho-D7A5A
- Resolved media URL: https://github.com/TorchOPC/TorchLitho
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-08/2026-08_media/1d7b7b9f-ea2b-49ba-81a7-67bdbd4f4457-CE647
<details>
<summary>Embeds data</summary>

```json
[
  {
    "color": "#1E2327",
    "description": "Include pixel-based mask synthesis, imaging model for optical lithography in Python - vincentlv/DimmiLitho",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 600,
      "url": "2026-08_media/DimmiLitho-D7A5A",
      "width": 1200
    },
    "timestamp": null,
    "title": "GitHub - vincentlv/DimmiLitho: Include pixel-based mask synthesis, ...",
    "url": "https://github.com/vincentlv/DimmiLitho"
  },
  {
    "color": "#1E2327",
    "description": "Differentiable Computational Lithogrpahy Framework - TorchOPC/TorchLitho",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 461,
      "url": "2026-08_media/1d7b7b9f-ea2b-49ba-81a7-67bdbd4f4457-CE647",
      "width": 894
    },
    "timestamp": null,
    "title": "GitHub - TorchOPC/TorchLitho: Differentiable Computational Lithogrp...",
    "url": "https://github.com/TorchOPC/TorchLitho"
  }
]
```

</details>

**Reactions**

- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-08/2026-08_media/1f440-6C64D.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-08/2026-08_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png
<details>
<summary>Reactions data</summary>

```json
[
  {
    "count": 1,
    "emoji": {
      "code": "eyes",
      "id": "",
      "imageUrl": "2026-08_media/1f440-6C64D.svg",
      "isAnimated": false,
      "name": "👀"
    },
    "users": [
      {
        "avatarUrl": "2026-08_media/e69d5a0ef16fab73702f739d1fde6389-BE72C.png",
        "color": null,
        "discriminator": "0000",
        "id": "488155070052171816",
        "isBot": false,
        "name": "rahulbhagwat",
        "nickname": "rahulbhagwat"
      }
    ]
  }
]
```

</details>

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-08_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1532916380943384586

**2026-08-01T01:02:25.426+00:00 — Tim 'mithro' Ansell (@mithro_)**

- Message ID: `1532916380943384586`
- Author ID: `169786952432746498`
- Nickname: Tim 'mithro' Ansell
- User name: mithro_
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1525828665655558280/1532916380943384586
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/creating-masks-ourselves/2026-08/2026-08.json

**Content**

```text
My understanding is that the "industry tool" is Dr.LiTHo?
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-08_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---
