Skip to main content

engineeringkit

PyPI version Python versions License CI Docs Ruff

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)

Source distribution for engineeringkit 0.1.0
File Size Uploaded Provenance
engineeringkit-0.1.0.tar.gz 279.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for engineeringkit 0.1.0
File Interpreter ABI Platform
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 log

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

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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