engineeringkit
Engineering concepts made computable → inspectable → visualizable → understandable.
EngineeringKit is an educational scientific-Python toolkit following the design philosophy of MathematicsKit: explicit intermediate results, NumPy/SciPy for mature numerics, and hand-written formulas/algorithms where seeing the mechanics is the lesson. SI units are used by public APIs.
Install
pip install engineeringkit
Beam
from engineeringkit.structural_engineering import SimplySupportedBeam
beam = SimplySupportedBeam(5.0, 200e9, 8e-6)
r = beam.solve_point_load(10_000)
print(r.summary())
r.plot()
PID
from scipy import signal
from engineeringkit.control_systems import PID
plant = signal.TransferFunction([1], [1, 2, 1])
r = PID(3, 1, 0.2).simulate(plant)
r.plot()
RLC
from engineeringkit.electrical_engineering import SeriesRLC
r = SeriesRLC(10, 0.1, 100e-6).step_response()
r.plot()
Thermodynamics
from engineeringkit.thermodynamics import OttoCycle
print(OttoCycle(10).summary())
Pipe flow
from engineeringkit.fluid_engineering import reynolds_number, colebrook_friction_factor
Re = reynolds_number(998, 2, 0.05, 1.002e-3)
f = colebrook_friction_factor(Re, 1e-4)
Release scope (v0.1)
All twelve domains include executable educational models. Version 0.1 adds
physical input validation, independent conservation/analytical/distribution
benchmarks, public scalar API units, and twelve detailed model guides. It also
corrects RLC current response, FM phase integration and unsigned modulation,
and improves numerical limiting cases. See docs/source/guides/ for model
assumptions and VERIFICATION.md for the actual test/build evidence.
Documentation: https://cpoli.github.io/engineeringkit/. To cite
engineeringkit, use CITATION.cff (GitHub's "Cite this repository").
Inspect a numerical method
import numpy as np
from engineeringkit.integrators import integrate_ode
result = integrate_ode(lambda t, y: -y, [1.0], np.linspace(0, 2, 101), "rk4")
print(result.summary())
fig, ax = result.plot(["normalized state"])
Verify locally
python -m pip install -e '.[dev]'
MPLBACKEND=Agg python -m pytest
python -m ruff check .
python -m ruff format --check .
python -m sphinx -W --keep-going -b html docs/source docs/_build/html
python -m build
Coverage requirement
Run the suite with production statement coverage:
MPLBACKEND=Agg python -m pytest --cov=engineeringkit --cov-report=term-missing
The report enforces 100% statement coverage. Test modules are excluded from the coverage denominator; all production modules, private validation helpers, constants, units, plotting and integration code are included. No production statements are marked with coverage-ignore pragmas. This measures statement execution, not 100% branch coverage or proof of scientific correctness.
Documentation navigation
Documentation now follows MathematicsKit's domain-first architecture: Subpackages,
History, Examples and API. Each domain hub links all three learning paths; grouped
cards and cross-links are generated from one registry in docs/source/conf.py.
Executed galleries come from examples/<domain>/, and detailed SI/assumption
guides remain linked from the galleries and domain hubs. See docs/README.md.
The MathematicsKit-style Sphinx navigation connects twelve domain hubs to History, Examples and API pages. History pages explain key equations and limits; 24 plotted gallery scripts include twelve explicit benchmark demonstrations.
Metadata
Release files for engineeringkit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| engineeringkit-0.1.0.tar.gz | 279.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| engineeringkit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 680.4 kB
Release files / engineeringkit-0.1.0.tar.gz
| Download URL | engineeringkit-0.1.0.tar.gz |
|---|---|
| Size | 279.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5cec9db6e25c4e72fd6b75a2e23fcaeec9fa50754af105d3f99f9276c4b31693
|
|
BLAKE2b-256 checksum How to use checksums |
eb5539bd0c280e3205d1beb099db9dda1b525ef3b806de5725e0c8872dc74f2a
|
| 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 Oct 18, 2026.
Transparency logRelease files / engineeringkit-0.1.0-py3-none-any.whl
| Download URL | engineeringkit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 401.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6aa8aff1b9c97bb6dfcc9c7003e6f0e21a5252f09e81fad74f7cf8a5f284a82a
|
|
BLAKE2b-256 checksum How to use checksums |
480b0535a51d1f21fc437df8831586d3bf9fb5d5ff2ef39b488c2987ceb57582
|
| 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 Oct 18, 2026.
Transparency logSecurity for engineeringkit 0.1.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for engineeringkit-0.1.0.tar.gz
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 Oct 18, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.