Technical calculation scaffold for an "hourglass stealth spacecraft" concept.
This repository is organized around two deliverables:
- An installable Python package for reusable calculations.
- A Jupyter notebook that serves as the calculation sheet behind a future blog post.
The repository is scaffolded and organized for implementation. Core modules, test coverage, output directories, and a notebook outline are in place. The detailed implementation plan lives in docs/development_plan.md.
- Passive sealed dwell time, in years.
- Detection distance, primarily in Earth-Moon distances.
- Emission is modeled as homogeneous over the spacecraft surface.
- This is intentionally conservative in favor of defense and hides angular structure for now.
- Perfect sun-axis alignment is assumed in all scenarios.
- Angle-dependent observability, mirror exposure, and glint are known limitations deferred to later work.
.
├── README.md
├── docs/
│ └── development_plan.md
├── notebooks/
│ └── 01_blog_calcs_sheet.ipynb
├── outputs/
│ └── .gitkeep
├── pyproject.toml
├── hourglass_stealth/
│ ├── __init__.py
│ ├── constants.py
│ ├── detector.py
│ ├── emission.py
│ ├── environment.py
│ ├── heat_store.py
│ ├── optics.py
│ ├── scenarios.py
│ └── tables.py
└── tests/
├── conftest.py
├── test_detector.py
├── test_emission.py
├── test_environment.py
├── test_heat_store.py
├── test_optics.py
├── test_package.py
└── test_scenarios.py
Work from the repository root:
cd /home/arominge/repos/hourglass_stealthIf .env/ already exists:
source .env/bin/activateIf you need to create it from scratch:
python -m venv .env
source .env/bin/activate
python -m pip install --upgrade pip
python -m pip install -e '.[dev]'python -c "import hourglass_stealth; print(hourglass_stealth.__version__)"pytest -qFrom the repo root, with the venv activated:
jupyter notebookor:
jupyter labThen open:
notebooks/01_blog_calcs_sheet.ipynb
The notebook imports the local editable package, so it should be run from this environment rather than from a system Python install.
Expected workflow:
- Activate
.env. - Start Jupyter from the repo root.
- Open
notebooks/01_blog_calcs_sheet.ipynb. - Run cells in order.
- Export generated tables to
outputs/as notebook functionality is filled in.
The intended dev stack is:
numpypandasmatplotlibjupyteripykernelpytest- optional:
scipy,openpyxl
Install them with:
python -m pip install -e '.[dev]'- The current notebook is still a structured stub; the core Python calculation modules are implemented first.
- In this Codex sandbox,
matplotlibmay warn about its cache directory and fall back to/tmp. On a normal local machine this should usually resolve through your user config directory. - If you initialize git later,
.gitignorealready excludes.env/, Python caches, and generated table exports.
- Wire the notebook sections to the implemented calculation modules.
- Generate assumption tables and baseline scenario outputs from code.
- Export scenario tables to
outputs/. - Expand the notebook into cislunar heating and viability sweeps.