Skip to main content

Standardized CubeSat & PocketQube form factor specs with launch provider deployer constraints

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cubesat_specs-0.2.1.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cubesat_specs-0.2.1-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file cubesat_specs-0.2.1.tar.gz.

File metadata

  • Download URL: cubesat_specs-0.2.1.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cubesat_specs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b2c9572edd85752337933ce27fb18c23638a4bdf5a761eb521a62ae14310d151
MD5 3e7e288d25ff61dad18a3e563de3ed07
BLAKE2b-256 42b6b1e9bd24e42b12a10315f2ad78fd8648d19e908fa1966f32206a95f75231

See more details on using hashes here.

Provenance

The following attestation bundles were made for cubesat_specs-0.2.1.tar.gz:

Publisher: publish.yml on JuliusPinsker/cubesat-specs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cubesat_specs-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: cubesat_specs-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 26.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cubesat_specs-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5fef57d9c97294f5656ca50dad7cda62ac55d7e3256c181ed2446c55c8cf7a7a
MD5 d86d8b0d9fa70f656c1eb38b875c5819
BLAKE2b-256 77668bbb8eed65d41c1c590947a10e2661c5d820f6841187b670aa4bac4bb568

See more details on using hashes here.

Provenance

The following attestation bundles were made for cubesat_specs-0.2.1-py3-none-any.whl:

Publisher: publish.yml on JuliusPinsker/cubesat-specs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page