Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ebeamtime-0.1.0.tar.gz (52.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ebeamtime-0.1.0-py3-none-any.whl (47.6 kB view details)

Uploaded Python 3

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

Hashes for ebeamtime-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5c09be0be6f87575ccb5d4c32d9d70610f9b7c4c9477942418facc7c3411058e
MD5 88e2b7499e0c2545663d2988a15621e9
BLAKE2b-256 1572eee900edb325166787c3c3e4ff8163f9b06f89b4c8a4ad05702648e98584

See more details on using hashes here.

Provenance

The following attestation bundles were made for ebeamtime-0.1.0.tar.gz:

Publisher: release.yml on SandboChang/ebeamtime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ebeamtime-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae54b3afeb6146e80b8efd5818d0e0a633a198fb660d71df5129dbc3cd0c0064
MD5 33a1104b463e85d9d1d8ed5efb342285
BLAKE2b-256 ab125b104579ff54cd5dd380dfdd61a7f18fd5129c52da2b867613437f22a7bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for ebeamtime-0.1.0-py3-none-any.whl:

Publisher: release.yml on SandboChang/ebeamtime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page