Skip to main content

cubesat-specs

PyPI version conda-forge Python 3.9+ License: MIT Tests Docs

Standardized CubeSat and PocketQube form factor specifications, design constraints, and launch provider deployer data — no hardcoding required.

pip install cubesat-specs     # PyPI
conda install -c conda-forge cubesat-specs  # conda-forge (coming soon)

Non-Python? All data is also available as machine-readable JSON files — use them from MATLAB, Julia, C++, JavaScript, or any language.

Quick Start

from cubesat_specs import (
    CUBESAT_FORM_FACTORS,
    POCKETQUBE_FORM_FACTORS,
    get_form_factor,
    get_compatible_providers,
    CDS,   # CubeSat Design Specification Rev 14.1
    PQS,   # PocketQube Standard Issue 1
)

# Look up a 3U CubeSat
ff = get_form_factor("3U")
print(ff.width_mm, ff.depth_mm, ff.height_mm)  # 100.0 100.0 340.5
print(ff.max_mass_kg)                            # 6.0
print(ff.volume_liters)                          # 3.405

# Centre-of-gravity check (CDS Rev 14.1 Table 2)
ff.cg_limits.within(1.0, 1.0, 5.0)  # True — within ±2/±2/±7 cm

# PocketQube 2p
pq = get_form_factor("2p")
print(pq.max_mass_kg)          # 0.5
pq.cg_limits.within(0.5, 0.5, 0.5)  # True — within ±1 cm (PQ-Mass-04)

# CDS constraints
print(CDS.rf_silence_minutes)       # 45
print(CDS.outgassing_tml_max_pct)   # 1.0

# PocketQube Standard constraints
print(PQS.min_kill_switches)        # 2
print(PQS.component_envelope_mm)    # 7.0

# Which launch providers accept a 6U?
for provider in get_compatible_providers("6U"):
    deployer_names = [d.name for d in provider.deployers
                      if "6U" in d.supported_form_factors]
    print(f"{provider.name}: {deployer_names}")

CubeSat Form Factors (CDS Rev 14.1)

Key W × D × H (mm) Max mass (kg) CG limits ±cm (X/Y/Z)
0.5U 100 × 100 × 56.75 1.00 2/2/2 *
1U 100 × 100 × 113.5 2.00 2/2/2
1.5U 100 × 100 × 170.25 3.00 2/2/3
2U 100 × 100 × 227.0 4.00 2/2/4.5
3U 100 × 100 × 340.5 6.00 2/2/7
3U+ 100 × 100 × 360.0 6.00 2/2/7
6U 226.3 × 100 × 366.0 12.00 4.5/2/7
12U 226.3 × 226.3 × 366.0 24.00 4.5/4.5/7
16U 226.3 × 226.3 × 488.0 32.00 —
27U 300 × 300 × 340.5 54.00 —

* 0.5U, 3U+, 16U, and 27U are community-derived, not in CDS Rev 14.1.

PocketQube Form Factors (PocketQube Standard Issue 1)

Key W × D × H (mm) Max mass (g) CG limit
1p 50 × 50 × 50 250 ±1 cm
2p 50 × 50 × 114 500 ±1 cm
3p 50 × 50 × 178 750 ±1 cm

Dimensions are without the 1.6 mm sliding backplate (Y-axis).

Design Constraints

The CDS and PQS singletons expose every quantitative constraint from the respective standards as simple attributes:

CDS Rev 14.1 highlights

Attribute Value CDS §
rail_min_width_mm 8.5 2.2.5
max_protrusion_mm 6.5 2.2.3
outgassing_tml_max_pct 1.0 % 2.1.7
outgassing_cvcm_max_pct 0.1 % 2.1.7
rf_silence_minutes 45 2.4.5
deployable_wait_minutes 30 2.4.4
min_deployment_switches 1 2.3.2
battery_faa_guideline_wh 100 2.1.5

PocketQube Standard Issue 1 highlights

Attribute Value PQ req.
min_kill_switches 2 Mech-12
component_envelope_mm 7.0 Mech-08
deployable_envelope_mm 10.0 Mech-08
cg_max_offset_cm 1.0 Mass-04
mass_per_unit_kg 0.250 Mass-01
backplate_thickness_mm 1.6 Table 1
pyrotechnics_allowed False Gen-02

Launch Providers & Deployers

Provider key Provider Deployers
nanoracks NanoRacks NRCSD, NRCSD-E, NRCSD DoubleWide
calpoly Cal Poly P-POD Mk III
isis ISIS ISIPOD 3U, ISIPOD 6U
exolaunch Exolaunch GmbH EXOpod 6U, EXOpod 12U
spaceflight SpaceFlight Inc. Sherpa-FX
rocketlab Rocket Lab Electron Rideshare Deployer
alba Alba Orbital PocketQube Deployer (4p)
jaxa JAXA J-SSOD (10 cm class)
dorbit D-Orbit ION Satellite Carrier
maverick Maverick Space Systems Mercury-3, Mercury-6, Mercury-12

Each DeployerSpec carries: supported_form_factors, max_payload_mass_kg, optional deployment_velocity_min/max_ms and tip_off_rate_max_deg_s (None when proprietary), and optional inclination_deg / altitude_km_min/max.

Data Sources

Machine-Readable Data (JSON)

All data is shipped as JSON files in src/cubesat_specs/data/ for use from any language:

File Contents
form_factors.json CubeSat (0.5U–27U) and PocketQube (1p–3p) dimensions, mass, CG limits
deployers.json All deployer specs (velocity, mass, form factors)
launch_providers.json Provider names, websites, deployer references
standards_cds.json CDS Rev 14.1 constraints
standards_pqs.json PocketQube Standard Issue 1 constraints

Regenerate with python scripts/export_json.py.

Citing

If you use this data in academic work, please cite:

@software{cubesat_specs,
  author  = {Pinsker, Julius},
  title   = {cubesat-specs},
  url     = {https://github.com/JuliusPinsker/cubesat-specs},
  version = {0.2.1},
  year    = {2026},
}

A CITATION.cff is included — GitHub shows a "Cite this repository" button automatically.

Contributing

PRs welcome! Priority areas:

  • Additional deployers (Tyvak, GomSpace, AAC Clyde Space)
  • VEGA/Ariane-6 rideshare specs
  • Updated NanoRacks specs post-Voyager acquisition
  • SpaceX Transporter mission orbit parameters per flight

License

MIT

Metadata

Release files for cubesat-specs 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cubesat-specs 0.2.1
File Size Uploaded
cubesat_specs-0.2.1.tar.gz 25.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cubesat-specs 0.2.1
File Interpreter ABI Platform
cubesat_specs-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 51.7 kB

Release files / cubesat_specs-0.2.1.tar.gz

Download URL cubesat_specs-0.2.1.tar.gz
Size 25.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b2c9572edd85752337933ce27fb18c23638a4bdf5a761eb521a62ae14310d151
BLAKE2b-256 checksum
How to use checksums
42b6b1e9bd24e42b12a10315f2ad78fd8648d19e908fa1966f32206a95f75231
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 1, 2026.

Transparency log

Release files / cubesat_specs-0.2.1-py3-none-any.whl

Download URL cubesat_specs-0.2.1-py3-none-any.whl
Size 26.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fef57d9c97294f5656ca50dad7cda62ac55d7e3256c181ed2446c55c8cf7a7a
BLAKE2b-256 checksum
How to use checksums
77668bbb8eed65d41c1c590947a10e2661c5d820f6841187b670aa4bac4bb568
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 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