LIBSkit
A software tool for the simulation and analysis of laser-induced breakdown spectroscopy (LIBS) spectra.
The simulation core is written in C++ with Python bindings via pybind11. Atomic databases (NIST ASD lines, ionization energies, energy levels) are bundled with the package and loaded automatically on import.
Quick Start
import libskit
import numpy as np
# Create an LTE plasma model
model = libskit.LTEModel(
{"Si": 0.72, "Na": 0.09, "Ca": 0.19}, # %
temperature=17300.0, # K
electron_density=2.53e23, # m^-3
length=2.4e-3 # m
)
# Define an instrument and calculate a spectrum
wavelengths = np.arange(250, 900, 0.05) # nm
instrument = libskit.GenericSpectrometer(0.05, 0.001) # nm
spectrum = instrument.calculate_spectrum(wavelengths, model)
Installation
This package is only available as a source build — it is not published on PyPI or any package registry.
Source builds need a Clang toolchain with the Enzyme automatic-differentiation plugin.
- Linux:
sudo apt install cmake ninja-build git clang llvm-dev - macOS: install LLVM/Clang and CMake, then build Enzyme against that LLVM
- Windows: use an LLVM/Clang toolchain with Enzyme available
Then:
git clone <repository-url>
cd libskit
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -r requirements.txt
./scripts/dev.sh
This builds the Enzyme plugin and installs the package in one step.
Note: Eigen3 is downloaded automatically during build if not found on your system.
Prerequisites (for development)
To build the code from source you need:
- Clang-compatible C++20 compiler
- CMake 3.15+
- Python 3.8+
Tutorials
The notebooks/ directory in this repository contains a curated set of tutorials (tutorial_1_… through tutorial_7_…).
Contributors
Christoph H. Egerland
License
MIT
Metadata
Release files for libskit 0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| libskit-0.2.tar.gz | 8.7 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Total release size: 48.8 MB
Release files / libskit-0.2.tar.gz
| Download URL | libskit-0.2.tar.gz |
|---|---|
| Size | 8.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dad0759904b586746bfcf36a4c28875cc0d309b1fa5f921dc61e866cd8a07088
|
|
BLAKE2b-256 checksum How to use checksums |
60cc44c90fc80bc80ec38d743bec49adac724eaa804f446188d892e7ec2e0370
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | libskit-0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1f94d446c2c5d72da6b2a1eb13dc28b24c2336a37ba1c0ad5158a990745ee52a
|
|
BLAKE2b-256 checksum How to use checksums |
dea95349d33804be1d3ead215587a82844b4467fc794fe61f224320c4e1a3120
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | libskit-0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5146ec6eaafaa8becc307052c74ca29c7e5b4bef7bf4bda5c0ef7ef26da99395
|
|
BLAKE2b-256 checksum How to use checksums |
820d4c4b47e1469211ddfeebdaf085ce49a226e0f25b2ee23b3707a7a97faabb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | libskit-0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.6 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a60b9fe4e831d1f76432195c3e2e82c545cd2d92b5ac1c9e77cff8d8593c974b
|
|
BLAKE2b-256 checksum How to use checksums |
9fa5d6243eef5941fe7693dcd8b71a287af3e5cd2a53b7967c89a9d5a64999b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | libskit-0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.6 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
63001f8dea0703ff9a7573cddcd6c3cd2a34340409f5ca5d8e90a908671751ca
|
|
BLAKE2b-256 checksum How to use checksums |
db40e209c5fb948e0af8f179577bc24a7af49eaa11c977145c5187e613d497db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | libskit-0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.5 MB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
15c80b72290d0531646e7243efa659d6eb9e6c0628019a47747138e9816800de
|
|
BLAKE2b-256 checksum How to use checksums |
32ce8a987dd5c11f72ee3623e44e2fe559c0d9abbcdc8ad75c5b99a722b3e1b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency log