
The History Survival Guide (or, A Time Traveler’s Guide to Surviving History) started in July 2019. History Survival Guide is pulp-era inspired STEM and history blog that explores different engineer and scientific concepts with practical information about how to recreate by hand
Each page is the accumulation of research for a particular topic, synthesized, and summarized in a useful ‘survival guide’ format. So far, topics covered include using the proper motion of stars to determine what time period a time traveler could have found themselves in, deciphering over a hundred ‘Hobo Symbols’ of the 1800’s, how to read the Pioneer Plaque, and how to build an astrolabe by hand!
This github repo includes all relevant code and images used in a given guidebook page
Determine angular distance between two given stars
Included:
- Python code to determine the angular distance between two Stars
Guidebook page:
Hobo Signs and Symbols with definitions
Included:
- Each individual Hobo symbols (png) with 248 x 248 pixels dimensions (that is formatted for Slack)
- Zip file with all symbols
![]() |
![]() |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Guidebook pages:
Clean PNG of the Pioneer Plaque
Reuse of this image is governed by NASA's image use policy.
Currently uses: Python 3.12 (pip install -r requirements.txt
)
Constructing a Base Plate
Base plate includes the position of the Tropic of Cancer, Tropic of Capricorn, and the Equator in three concentric circles. The position of each circle is due to the obliquity of the planet and over time the obliquity of Earth can shift
Corrected for obliquities between 0°-89.99° (undefined at 90°) when radius of base plate is 1
python generate_base_plate.py
outer_tropic_radius = base_plate_radius
equator_radius = base_plate_radius / (tan(45° + (obliquity / 2))
inner_tropic_radius = base_plate_radius / (tan(45° - (obliquity / 2))
Currently, uses star-chart-spherical-projection package
import star_chart_spherical_projection
star_chart_spherical_projection.plotStarPositionOverTime(builtInStarName="Vega",
newStar=None,
startYearSince2000=-15000,
endYearSince2000=15000,
isPrecessionIncluded=True,
incrementYear=5,
DecOrRA="D")
Constructing Eccentric Calendar for Back Plate
An eccentric calendar assumes the sun moves at a constant speed throughout the year but accounts for the Sun's true anomaly as an offset from the Vernal Equinox. Due to both longitude and the year since 2000, the center of the calendar will be placed at an offset from the center of the back plate of the astrolabe on the line of apsides (the line connecting the perihelion and aphelion)
Code will generate both the angular distance from the Vernal Equinox to the January 0 (midnight of December 31) at the beginning of the year as well as the offset (x, y) from the center of the back plate
python calculate_eccentric_calendar_offset.py
Variables:
- Year to calculate (for example: 2025)
- The longitude of the observer (-71.05° for Boston, -105.27° for Boulder, 0° for Greenwich, 13.74° for Dresden)
- Radius of the back plate
For the Year 2025 at longitude -105.2705° for a plate with a radius of 1.0
Perihelion = 103.367258°
Aphelion = 283.367258°
Mean Anomaly of Jan 0 = 357.291665°
Line of Apside relative to Vernal Equinox for Longitude -105.2705° = -79.62948862096914°
Offset due to Eccentricity with radius of 1.0 = 0.033396
X offset with radius of 1.0 = -0.007721
Y offset with radius of 1.0 = 0.032491
How Changing the Year Changes Eccentricity
How Changing the Year Changes the Offset (X, Y)
How Changing the Longitude Changes the Angular Distance to the Vernal Equinox
Constructing a Star Chart