prefab 1.3.0__py3-none-any.whl → 1.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefab
3
- Version: 1.3.0
3
+ Version: 1.4.1
4
4
  Summary: Artificial nanofabrication of integrated photonic circuits using deep learning
5
5
  Project-URL: Homepage, https://prefabphotonics.com
6
6
  Project-URL: Repository, https://github.com/PreFab-Photonics/PreFab
@@ -518,6 +518,7 @@ Classifier: Programming Language :: Python :: 3
518
518
  Requires-Python: >=3.9
519
519
  Requires-Dist: autograd
520
520
  Requires-Dist: gdstk>=0.9.55
521
+ Requires-Dist: ipykernel>=6.31.0
521
522
  Requires-Dist: matplotlib
522
523
  Requires-Dist: numpy
523
524
  Requires-Dist: opencv-python-headless
@@ -527,17 +528,21 @@ Requires-Dist: requests
527
528
  Requires-Dist: scikit-image
528
529
  Requires-Dist: scipy
529
530
  Requires-Dist: toml
530
- Requires-Dist: tqdm
531
+ Provides-Extra: dev
532
+ Requires-Dist: jupyter; extra == 'dev'
533
+ Requires-Dist: jupyterlab; extra == 'dev'
534
+ Provides-Extra: docs
535
+ Requires-Dist: mkdocs; extra == 'docs'
536
+ Requires-Dist: mkdocs-material; extra == 'docs'
537
+ Requires-Dist: mkdocstrings[python]; extra == 'docs'
531
538
  Description-Content-Type: text/markdown
532
539
 
533
540
  # PreFab
534
541
 
535
- ![PreFab logo](https://github.com/PreFab-Photonics/PreFab/blob/main/docs/assets/logo.png?raw=true)
542
+ ![PreFab logo](https://github.com/PreFab-Photonics/PreFab/blob/main/docs/assets/prefab-logo.png?raw=true)
536
543
 
537
544
  PreFab is a _virtual nanofabrication environment_ that leverages **deep learning** and **computer vision** to predict and correct for structural variations in integrated photonic devices during nanofabrication.
538
545
 
539
- > **Try Rosette**: Want a more visual experience? Try [Rosette](https://rosette.dev) - our new layout tool with PreFab models built in, designed for rapid chip design.
540
-
541
546
  ## Prediction
542
547
 
543
548
  PreFab predicts process-induced structural variations, including corner rounding, loss of small lines and islands, filling of narrow holes and channels, sidewall angle deviations, and stochastic effects. This allows designers to rapidly prototype and evaluate expected performance pre-fabrication.
@@ -550,57 +555,38 @@ PreFab corrects device designs to ensure that the fabricated outcome closely mat
550
555
 
551
556
  ![Example of PreFab correction](https://github.com/PreFab-Photonics/PreFab/blob/main/docs/assets/promo_c.png?raw=true)
552
557
 
553
- ## Models
554
-
555
- Each photonic nanofabrication process requires unique models, which are regularly updated with the latest data. The current models include (see the full list in [`docs/models.md`](https://github.com/PreFab-Photonics/PreFab/blob/main/docs/models.md)):
556
-
557
- | Foundry | Process | Latest Version | Latest Dataset | Model Name |
558
- | ------- | ------- | ----------------- | ---------------- | ----------- |
559
- | ANT | NanoSOI | ANF1 (May 6 2024) | d10 (Jun 8 2024) | ANT_NanoSOI_ANF1_d10 |
560
- | ANT | SiN | ANF1 (May 6 2024) | d1 (Jan 31 2024) | ANT_SiN_ANF1_d1 |
561
-
562
- > _New models are to be regularly added. Usage may change. For additional foundry and process models, feel free to [contact us](mailto:hi@prefabphotonics.com) or raise an issue._
563
-
564
558
  ## Installation
565
559
 
566
- Install PreFab via pip:
560
+ Install PreFab using pip:
567
561
 
568
562
  ```sh
569
563
  pip install prefab
570
564
  ```
571
565
 
572
- Or clone the repository and install in development mode:
566
+ For contributors who wish to make changes to the source code:
573
567
 
574
568
  ```sh
569
+ # Install uv (if not already installed)
570
+ curl -LsSf https://astral.sh/uv/install.sh | sh
571
+
572
+ # Clone and set up the project
575
573
  git clone https://github.com/PreFab-Photonics/PreFab.git
576
574
  cd PreFab
577
- pip install -e .
575
+ uv sync
578
576
  ```
579
577
 
580
578
  ## Getting Started
581
579
 
582
- ### Account setup
580
+ Before you can make PreFab requests, you will need to [create an account](https://www.prefabphotonics.com/auth/signup).
583
581
 
584
- Before you can make PreFab requests, you will need to [create an account](https://www.prefabphotonics.com/login).
585
-
586
- To link your account, you will need an token. You can do this by running the following command in your terminal. This will open a browser window where you can log in and authenticate your token.
582
+ To link your account, run the following command to authenticate your token:
587
583
 
588
584
  ```sh
589
585
  prefab setup
590
586
  ```
591
587
 
592
- ### Guides
593
-
594
- Visit [`/docs/examples`](https://github.com/PreFab-Photonics/PreFab/tree/main/docs/examples) or our [docs](https://docs.prefabphotonics.com/) to get started with your first predictions.
595
-
596
- ## Performance and Usage
597
-
598
- PreFab models are hosted on a [serverless cloud platform](https://modal.com/). Please keep in mind:
599
-
600
- - 🐢 Default CPU inference may be slower.
601
- - 🥶 The first prediction using optional GPU inference may take longer due to cold start server loading. Subsequent predictions will be faster.
602
- - 😊 Please be considerate of usage. Start with small tasks and limit usage during the initial stages. Thank you!
588
+ Visit [`/docs/examples`](https://github.com/PreFab-Photonics/PreFab/tree/main/docs/examples) or our [documentation](https://docs.prefabphotonics.com/) to get started with your first predictions.
603
589
 
604
590
  ## License
605
591
 
606
- This project is licensed under the LGPL-2.1 license. © 2025 PreFab Photonics.
592
+ LGPL-2.1 © PreFab Photonics
@@ -0,0 +1,17 @@
1
+ prefab/__init__.py,sha256=f9FN73XE4ufrKEDyy5rGQW2sWWH-8Y4C_7FYwO946Rs,425
2
+ prefab/__main__.py,sha256=M5ulRfgSMdPjeHPoMGQ3P86zFMJDII5I18NGrpFUcsM,3458
3
+ prefab/compare.py,sha256=aX7nr9tznSebYeeztvqIPz57npnJ4-iUeKEedrZdksE,3676
4
+ prefab/device.py,sha256=1O6vTOq4wQRGVYvFWLH0uj1XhhYCfnDnIapDEYnBKHw,47996
5
+ prefab/geometry.py,sha256=-nTaGjdw3KN1SVoyvqdcrE2GJP7OqPF6ivUhrO78rUk,11244
6
+ prefab/predict.py,sha256=066X_SnSIHPqaPMbk0Yn_yX_KBfUc9yxrsmP_k56FU0,19015
7
+ prefab/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ prefab/read.py,sha256=5BmvFemobA72urxs4j2VZRVvanZZGu1mDB1Uh-epyvI,8635
9
+ prefab/shapes.py,sha256=mRGwsPS-A9XsW3jgvUuMCEeNv9BLXsEnJkytlIHUAKE,28802
10
+ prefab/models/__init__.py,sha256=rRrjcOcHPcob98Coksc0tbvYcXbm6SoLEb-Md233Jvo,1391
11
+ prefab/models/base.py,sha256=t4VNMsOztPedj3kN5fZ1-4tk0SRHWrMuqnIVHztsCs4,1514
12
+ prefab/models/evaluation.py,sha256=2_Klui6tY8xPvOSVD8VpZCVAnT1RX15FONqWG-_x-J8,484
13
+ prefab-1.4.1.dist-info/METADATA,sha256=miTQTlHxSgZn57wzltpGpAZ4PgUBW-hVSWmxmSDGqCA,33880
14
+ prefab-1.4.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
15
+ prefab-1.4.1.dist-info/entry_points.txt,sha256=h1_A9O9F3NAIoKXD1RPb3Eo-WCSiHhMB_AnagBi6XTQ,48
16
+ prefab-1.4.1.dist-info/licenses/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
17
+ prefab-1.4.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
prefab/models.py DELETED
@@ -1,114 +0,0 @@
1
- """Models for the PreFab library."""
2
-
3
- import json
4
- from datetime import date
5
-
6
- from pydantic import BaseModel
7
-
8
-
9
- class Fab(BaseModel):
10
- """
11
- Represents a fabrication process in the PreFab model library.
12
-
13
- Attributes
14
- ----------
15
- foundry : str
16
- The name of the foundry where the fabrication process takes place.
17
- process : str
18
- The specific process used in the fabrication.
19
- material : str
20
- The material used in the fabrication process.
21
- technology : str
22
- The technology used in the fabrication process.
23
- thickness : int
24
- The thickness of the material used, measured in nanometers.
25
- has_sidewall : bool
26
- Indicates whether the fabrication has angled sidewalls.
27
- """
28
-
29
- foundry: str
30
- process: str
31
- material: str
32
- technology: str
33
- thickness: int
34
- has_sidewall: bool
35
-
36
-
37
- class Model(BaseModel):
38
- """
39
- Represents a model of a fabrication process including versioning and dataset detail.
40
-
41
- Attributes
42
- ----------
43
- fab : Fab
44
- An instance of the Fab class representing the fabrication details.
45
- version : str
46
- The version identifier of the model.
47
- version_date : date
48
- The release date of this version of the model.
49
- dataset : str
50
- The identifier for the dataset used in this model.
51
- dataset_date : date
52
- The date when the dataset was last updated or released.
53
- tag : str
54
- An optional tag for additional categorization or notes.
55
-
56
- Methods
57
- -------
58
- to_json()
59
- Serializes the model instance to a JSON formatted string.
60
- """
61
-
62
- fab: Fab
63
- version: str
64
- version_date: date
65
- dataset: str
66
- dataset_date: date
67
- tag: str
68
-
69
- def to_json(self):
70
- return json.dumps(self.dict(), default=str)
71
-
72
-
73
- ANT_NanoSOI = Fab(
74
- foundry="ANT",
75
- process="NanoSOI",
76
- material="SOI",
77
- technology="E-Beam",
78
- thickness=220,
79
- has_sidewall=False,
80
- )
81
-
82
- ANT_SiN = Fab(
83
- foundry="ANT",
84
- process="SiN",
85
- material="SiN",
86
- technology="E-Beam",
87
- thickness=400,
88
- has_sidewall=True,
89
- )
90
-
91
- ANT_NanoSOI_ANF1_d10 = Model(
92
- fab=ANT_NanoSOI,
93
- version="ANF1",
94
- version_date=date(2024, 5, 6),
95
- dataset="d10",
96
- dataset_date=date(2024, 6, 8),
97
- tag="",
98
- )
99
-
100
- ANT_SiN_ANF1_d1 = Model(
101
- fab=ANT_SiN,
102
- version="ANF1",
103
- version_date=date(2024, 5, 6),
104
- dataset="d1",
105
- dataset_date=date(2024, 1, 31),
106
- tag="",
107
- )
108
-
109
- models = dict(
110
- ANT_NanoSOI=ANT_NanoSOI_ANF1_d10,
111
- ANT_NanoSOI_ANF1_d10=ANT_NanoSOI_ANF1_d10,
112
- ANT_SiN=ANT_SiN_ANF1_d1,
113
- ANT_SiN_ANF1_d1=ANT_SiN_ANF1_d1,
114
- )
@@ -1,14 +0,0 @@
1
- prefab/__init__.py,sha256=l9aFRS6H9RKpzotuXz_qmSOvW1Fdvo_tlH2vuUOa8VE,425
2
- prefab/__main__.py,sha256=1eXWiEoG7eetJMm1qRbK2I5MnzuRgKIoQtBeT-Ps8es,3523
3
- prefab/compare.py,sha256=0Xgp3tFuP4of-ce9Opc19p8i8lIyXkbVGLuwWBaHSeE,3486
4
- prefab/device.py,sha256=7SiawFa103ebFqii3CWy_vPO6ixigVliO6A58hoOqkU,55414
5
- prefab/geometry.py,sha256=fvMSJpDAqxWShhKojPGnXdB4otrBn54kbW8uk1T4Wwk,12104
6
- prefab/models.py,sha256=waPNGtuISyY0f8cz7dnbD451CKYCt8EpPGt-4lSOPNU,2581
7
- prefab/predict.py,sha256=jtB18QOlPINJRqUZCwnuMOfPuuwE1s2e353X5g3njd4,18349
8
- prefab/read.py,sha256=WNqC3xENlndzFwXeCF2E7H3Iq2dO_6rPEPZ58DuloqY,16259
9
- prefab/shapes.py,sha256=58cyXFNh1kEErq2jEbGd3dWSediU1OSmor_FWwc1V8A,25098
10
- prefab-1.3.0.dist-info/METADATA,sha256=Xvbt_umsD1mZY1S9phLLABxbR18MCuw4disk81IUslY,35025
11
- prefab-1.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- prefab-1.3.0.dist-info/entry_points.txt,sha256=h1_A9O9F3NAIoKXD1RPb3Eo-WCSiHhMB_AnagBi6XTQ,48
13
- prefab-1.3.0.dist-info/licenses/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
14
- prefab-1.3.0.dist-info/RECORD,,