Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
- name: Verify wheel installs cleanly
run: |
pip install dist/*.whl
python -c "from engine import JumpDiffusionEngine; print('import OK')"
python -c "from jump_diffusion_engine import JumpDiffusionEngine; print('import OK')"

- name: Upload distributions
uses: actions/upload-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht

### Added
- Initial public release of Jump-Diffusion-Engine.
- Core simulation and stochastic stability analysis methods in `engine.py`.
- Core simulation and stochastic stability analysis methods in `jump_diffusion_engine.py`.
- Automated test suite and CI workflow for Python 3.9–3.12.
- Packaging metadata for setuptools-based builds.

34 changes: 26 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ subject to continuous diffusion and discrete jump noise.
- `f(Δ) = kΔ + gΔ²/(K²+Δ²)` — the nonlinear sink (linear + saturating)
- `Δ* : Λ = f(Δ), f′(Δ*) > 0` — a stable equilibrium (basin centre)

Use `engine.py` to **analyse** stochastic systems and **steer** trajectories toward stable basins:
Use `jump_diffusion_engine.py` to **analyse** stochastic systems and **steer** trajectories toward stable basins:

| # | Action | Method | What it does |
|:-|:---|:---|:---|
Expand All @@ -29,17 +29,30 @@ Use `engine.py` to **analyse** stochastic systems and **steer** trajectories tow

## Installation

**Standard install (recommended)**
> **Note:** PyPI publishing is not yet configured. Install directly from a GitHub release or from a local clone.

**Install from a GitHub release (end users)**

After the `v0.1.0` tag is published as a GitHub Release, install with:

```bash
pip install -e .
pip install "jump-diffusion-engine @ https://github.com/beanapologist/Jump-Diffusion-Engine/archive/refs/tags/v0.1.0.tar.gz"
```

This installs the package and all dependencies from the root of the repository.
Replace `v0.1.0` with the tag you want. All releases are listed on the
[Releases page](https://github.com/beanapologist/Jump-Diffusion-Engine/releases).

**Editable install from source (contributors)**

```bash
git clone https://github.com/beanapologist/Jump-Diffusion-Engine.git
cd Jump-Diffusion-Engine
pip install -e .
```

**Manual dependency install**

If you prefer not to use the package install, install dependencies directly:
If you prefer not to install the package, install dependencies directly:

```bash
pip install numpy scipy matplotlib
Expand All @@ -48,14 +61,14 @@ pip install numpy scipy matplotlib
Then add the repository root to your Python path and import:

```python
from engine import JumpDiffusionEngine
from jump_diffusion_engine import JumpDiffusionEngine
```

## Quick Start

```python
import numpy as np
from engine import JumpDiffusionEngine
from jump_diffusion_engine import JumpDiffusionEngine

# Define a source: constant with a small oscillation
def lambda_func(t):
Expand Down Expand Up @@ -164,14 +177,19 @@ When training a robot to walk, you do not want it to explore so far that it brea
- **The Jumps (`J`):** A person pushing the robot or an uneven floor.
- **Use Case:** Ensuring the robot's brain always stays within a safe operational basin.

## Citation

If you use this software in your research, please cite it as below.
A Zenodo DOI will be added after this release is archived on Zenodo.

```bibtex
@software{SarahMarin_JumpDiffusionEngine_2026,
author = {Sarah Marin},
title = {JumpDiffusionEngine: A Universal Framework for Multistable Stochastic Control},
year = {2026},
publisher = {GitHub},
url = {https://github.com/beanapologist/Jump-Diffusion-Engine},
note = {Versioned releases archived on Zenodo; DOI will be added after the first Zenodo-backed release}
note = {Version 0.1.0 – initial release; Zenodo archiving pending}
}
```

Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Changelog = "https://github.com/beanapologist/Jump-Diffusion-Engine/blob/main/CH
dev = ["pytest>=7.0"]

[tool.setuptools]
py-modules = ["engine"]
py-modules = ["jump_diffusion_engine"]

[tool.pytest.ini_options]
testpaths = ["tests"]
2 changes: 1 addition & 1 deletion tests/test_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# Allow importing engine from the repo root when running with pytest from any cwd
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))

from engine import JumpDiffusionEngine
from jump_diffusion_engine import JumpDiffusionEngine


# ---------------------------------------------------------------------------
Expand Down
Loading