Generate micropatterning streamfiles, e.g. for FEI HELIOS machines.
Project description
Python Micro Pattern Stream Generator (pyMPSG) library 
Generate streamfiles (.str) for patterning on e.g. FEI dualbeam focussed ion beam (FIB) milling machines, such as Helios G4Cx or Helios 650. This allows for generating arbitrary¹ 2.5D shapes, such as domes, cones, markers, etc, as well as combinations thereof. Allowing for a wide range of complex patterns.
This should also be usable for electron- or ion-beam induced deposition (EBID/IBID). Extension to patterning text and bitmaps should be fairly easy (please open an issue if you are interested in details).
I developed this at the quantum technologies department at TNO and now publish it with their consent. If you are interested to have this technique applied to you chip², please reach out to diamond-devices@tno.nl
¹ within the limits of the machine
² e.g. for solid-immersion lenses around single color centers
Installation
pip install pyMPSG
Minimal usage example
from pyMPSG import pointscanner, depthmapper, StreamGenerator, Setup, Streamfile
# Prepare "Setup" - ie. the settings for the machine and substrate
machine = Setup(mu=7.5e-6, I_B=9.4, ds=0.1, zoom=3500)
# Specify the object to pattern and the rastering method
dm = depthmapper.Circle(r=5, depth=1, setup=machine)
ps = pointscanner.Spiral(radius=dm.r_o, inside_out=True, setup=machine)
# Generate the streamfile
sg = StreamGenerator(pointscanner=ps, depthmapper=dm, setup=machine, layer_thickness=0.05)
sf = Streamfile(sg)
sf.write_file('instructions')
More usage examples and explanation can be found in the examples folder.
Reference and Citing
Based on the python2 script provided in:
Mohammad Jamali, Ilja Gerhardt, Mohammad Rezai, Karsten Frenner, Helmut Fedder, Jörg Wrachtrup; Microscopic diamond solid-immersion-lenses fabricated around single defect centers by focused ion beam milling. Rev. Sci. Instrum. 1 December 2014; 85 (12): 123703.
If you use this code in your work, please cite it with its DOI: 10.5281/zenodo.17148127.
Disclaimer
All mentioned names (such as NanoBuilder, FEI, Helios, ...) are brands and/or registered trademarks of their respective owners (e.g. ThermoFisher). There is no affiliation with any of these brands or companies. For further disclaimers, please read the license file.
Copyright 2025 René Vollmer
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at apache.org.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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 pympsg-1.0.2.tar.gz.
File metadata
- Download URL: pympsg-1.0.2.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e63b3265d828cd8cc0e2617ecb5b6378687ad0d348fa05344ddb8ac6b3a3171
|
|
| MD5 |
0fdc997738586ac99a6d031a0f02ad59
|
|
| BLAKE2b-256 |
1545612ad5a149d5189ef83abe7feafd8f76dd979d0b41ddfe21c44f4edf0e51
|
Provenance
The following attestation bundles were made for pympsg-1.0.2.tar.gz:
Publisher:
python-publish.yml on Aypac/pyMPSG
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pympsg-1.0.2.tar.gz -
Subject digest:
2e63b3265d828cd8cc0e2617ecb5b6378687ad0d348fa05344ddb8ac6b3a3171 - Sigstore transparency entry: 530666467
- Sigstore integration time:
-
Permalink:
Aypac/pyMPSG@36869bdbd0a39dea4e5fb74b5a0bab9594171f42 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/Aypac
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@36869bdbd0a39dea4e5fb74b5a0bab9594171f42 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pympsg-1.0.2-py3-none-any.whl.
File metadata
- Download URL: pympsg-1.0.2-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8af06ae9da7e5fb525981b0c2e7bd894259eb55d7ab56ba8551a0c831dac457a
|
|
| MD5 |
cbc48f34d33188334ad48535fe2d8e51
|
|
| BLAKE2b-256 |
3b571bbc2aef5a9ba9ae3859a5eba92301de3a0f3471deef58bfd0a43a06833e
|
Provenance
The following attestation bundles were made for pympsg-1.0.2-py3-none-any.whl:
Publisher:
python-publish.yml on Aypac/pyMPSG
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pympsg-1.0.2-py3-none-any.whl -
Subject digest:
8af06ae9da7e5fb525981b0c2e7bd894259eb55d7ab56ba8551a0c831dac457a - Sigstore transparency entry: 530666492
- Sigstore integration time:
-
Permalink:
Aypac/pyMPSG@36869bdbd0a39dea4e5fb74b5a0bab9594171f42 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/Aypac
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@36869bdbd0a39dea4e5fb74b5a0bab9594171f42 -
Trigger Event:
release
-
Statement type: