Analytical electron-beam lithography write-time estimation from GDSII layouts
Project description
ebeamtime
ebeamtime estimates analytical electron-beam lithography write time from GDSII
polygon area, exposure dose, beam current, and optional stage/write-field
metadata. It preserves raw polygon-instance area semantics: overlapping source
polygons are counted separately because each is written separately.
python -m pip install ebeamtime
ebeamtime layout.gds --exposure 1:0:100:1 --backend cpu
For reproducible local development on WSL, synchronize the committed production-index lock into the platform-specific environment:
UV_PROJECT_ENVIRONMENT=.venv_wsl UV_LINK_MODE=copy uv sync --locked --extra test
TMPDIR=/tmp .venv_wsl/bin/python -m pytest
When qualifying coordinated unpublished changes, a sibling gdsdiff checkout
may be installed editable for that local test, but it must not be recorded in
package metadata or uv.lock.
Python usage:
from ebeamtime import EbeamLayerExposure, EstimateConfig, LayerSpec
from ebeamtime import estimate_gds_write_time
config = EstimateConfig(
"layout.gds",
(EbeamLayerExposure("metal", LayerSpec(1, 0), 100, 1),),
backend="cpu",
)
report = estimate_gds_write_time(config).report
print(report.total_s)
CUDA and Apple Metal are runtime options. They require compatible hardware and
the platform toolchain (nvcc or Xcode command-line tools); CPU requires
neither. See ebeamtime-diagnostics and docs/semantics.md.
On-demand builds default to NVIDIA's -arch=native, which detects visible GPUs
and emits native SASS without PTX. For cross-machine builds, set
EBEAMTIME_CUDA_ARCHITECTURES to comma-separated compute capabilities without
decimals (for example, 89,120); targets and standard NVCC_*_FLAGS become
part of the content-addressed cache key.
Installation and import never compile GPU code. Inspect the shared CUDA
toolchain through ebeamtime.inspect_cuda_toolchain(), then build and verify
only the estimator kernel with ebeamtime.prepare_cuda() or
ebeamtime-prepare-cuda --json. Explicit backend="cuda" use retains lazy
preparation. backend="auto" does not probe or compile a GPU backend for
workloads below gpu_min_polygons. Metal is experimental until validated on
Apple Silicon hardware.
--project-config loads and executes Python. Use it only with trusted project
configuration files.
The project is early-stage software and is licensed under GPL-3.0-only.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ebeamtime-0.1.0.tar.gz.
File metadata
- Download URL: ebeamtime-0.1.0.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c09be0be6f87575ccb5d4c32d9d70610f9b7c4c9477942418facc7c3411058e
|
|
| MD5 |
88e2b7499e0c2545663d2988a15621e9
|
|
| BLAKE2b-256 |
1572eee900edb325166787c3c3e4ff8163f9b06f89b4c8a4ad05702648e98584
|
Provenance
The following attestation bundles were made for ebeamtime-0.1.0.tar.gz:
Publisher:
release.yml on SandboChang/ebeamtime
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ebeamtime-0.1.0.tar.gz -
Subject digest:
5c09be0be6f87575ccb5d4c32d9d70610f9b7c4c9477942418facc7c3411058e - Sigstore transparency entry: 2191303770
- Sigstore integration time:
-
Permalink:
SandboChang/ebeamtime@b576653e4686bd34de9b59dc088677ac529c61db -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/SandboChang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b576653e4686bd34de9b59dc088677ac529c61db -
Trigger Event:
push
-
Statement type:
File details
Details for the file ebeamtime-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ebeamtime-0.1.0-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae54b3afeb6146e80b8efd5818d0e0a633a198fb660d71df5129dbc3cd0c0064
|
|
| MD5 |
33a1104b463e85d9d1d8ed5efb342285
|
|
| BLAKE2b-256 |
ab125b104579ff54cd5dd380dfdd61a7f18fd5129c52da2b867613437f22a7bb
|
Provenance
The following attestation bundles were made for ebeamtime-0.1.0-py3-none-any.whl:
Publisher:
release.yml on SandboChang/ebeamtime
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ebeamtime-0.1.0-py3-none-any.whl -
Subject digest:
ae54b3afeb6146e80b8efd5818d0e0a633a198fb660d71df5129dbc3cd0c0064 - Sigstore transparency entry: 2191303777
- Sigstore integration time:
-
Permalink:
SandboChang/ebeamtime@b576653e4686bd34de9b59dc088677ac529c61db -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/SandboChang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b576653e4686bd34de9b59dc088677ac529c61db -
Trigger Event:
push
-
Statement type: