A desktop application that computes the minimum dimensions of an observatory shed (or roll-off roof enclosure) needed to house a German Equatorial Mount (GEM) telescope, given your site latitude, mount geometry, telescope dimensions, and local horizon profile.
The tool sweeps all valid hour angle / declination combinations and, for each position, samples points around the tube surface to build a 3D point cloud of the telescope's swept volume. From this cloud it derives:
- Footprint (E-W width, N-S depth) — the bounding box of the swept volume plus a safety margin.
- Wall height — for each valid pose, the tube is extended to 20 m along its optical axis and intersected with each wall plane. The lowest point of each resulting elliptical intersection is recorded. The required wall height is the minimum across all poses — the lowest point through which the line of sight must still clear the wall.
Poses are excluded if:
- The telescope is below the horizon profile at that azimuth.
- The counterweight shaft has rotated past the configured CW-up limit (meridian flip forbidden zone).
- Interactive 3D view — live PyVista/VTK rendering of the mount, swept volume point cloud, and shed wireframe with dimension labels and pier-to-wall arrows.
- Interactive horizon editor — click and drag the horizon chart to sculpt your local horizon profile, or load/save a horizon file.
- Per-wall offsets — move each wall independently to model real building constraints and instantly see the updated height requirement.
- Live pose preview — drag the hour angle / declination sliders to see the mount move in 3D, with real-time altitude, azimuth, horizon, and CW-up status.
- Configuration save/load — all parameters saved as a human-readable JSON file.
- Built-in user manual — accessible via Help → User manual.
pip install pyvistaqt PyQt5 pyvista numpy matplotlibPython 3.8+ recommended.
python gem_envelope.pyPress Compute envelope to run the sweep and display the shed dimensions.
| Parameter | Description |
|---|---|
| Latitude (°) | Observer latitude. Affects polar axis tilt and sky coverage. |
| Pier height (mm) | Height of the pier top above the floor. |
| Safety margin (mm) | Extra clearance added to all walls. |
| Parameter | Description |
|---|---|
| Polar axis (mm) | Length of the RA axis arm from pier top to DEC junction. |
| DEC arm (mm) | Length of the DEC axis arm to the tube saddle. |
| CW shaft (mm) | Counterweight shaft length. |
| CW diameter (mm) | Counterweight disc diameter. |
| CW position (%) | Counterweight position along the shaft. |
| CW-up max angle (°) | Maximum allowed CW-shaft angle past horizontal. Defines the meridian flip forbidden zone: hour angles between −(180°−limit) and −limit are excluded. |
| Parameter | Description |
|---|---|
| Tube length (mm) | Total optical tube length. |
| Tube diameter (mm) | Outer tube diameter. |
| Balance from front (mm) | Distance from the sky-end of the tube to the DEC saddle balance point. |
| Parameter | Description |
|---|---|
| HA samples | Number of hour angle steps in the sweep (12–72). Higher = more accurate, slower. |
| Dec samples | Number of declination steps (12–48). |
Extra offset (mm) added to each wall beyond the computed envelope + safety margin. Useful when a real building wall is further away than the minimum — the wall height is recalculated for the actual wall position.
Plain text, one point per line:
# az_deg alt_deg
0 15
45 8
90 5
180 20
270 12
355 18
Azimuth convention: 0 = North, 90 = East, 180 = South, 270 = West.
The results panel shows:
- E-W width and N-S depth of the required shed footprint.
- Surface area (m²).
- Clear height — minimum wall height so all valid lines of sight clear the walls.
- Pier-to-wall distances for each of the four walls.
- E/W asymmetry warning if the pier is significantly off-centre.
Yellow arrows in the 3D view indicate the pier-to-wall distances directly on the plot.
MIT
