Skip to main content

LIBSkit

CI Documentation Status PyPI

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)

Source distribution for libskit 0.2
File Size Uploaded
libskit-0.2.tar.gz 8.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for libskit 0.2
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2 This release

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page