× This Challenge was posted 3 years ago

Challenge view

Back to Project

helvetiX: An XR guide to Helvetia

The ancient Romans had accurate maps of Europe, but no navigation devices yet. helevetiX now provides one.

4th century Romans travelling to foreign countries had accurate road maps of the Roman Empire. One of those Roman road maps has been preserved and today is known as "Tabula Peutingeriana" (Latin for "The Peutinger Map", from one of its former owners, Konrad Peutinger, a 16th-century German humanist and antiquarian in Augsburg). The map resembles modern bus or subway maps and shows all major settlements and the distances between them, a feature which makes it a predecessor of modern navigation systems.

The Peutinger Map is an illustrated itinerarium (ancient Roman road map) showing the layout of the cursus publicus, the road network of the Roman Empire. The map is a 13th-century parchment copy of a (possible) Roman original and is now conserved at the Austrian National Library in Vienna. It covers Europe (without the Iberian Peninsula and the British Isles), North Africa, and parts of Asia, including the Middle East, Persia, and India.


Tabula Peutingeriana, 1-4th century CE. Facsimile edition by Konrad Miller, 1887/1888

Today, HTML and its geolocation API provide a lightweight, yet powerful tool to precisely locate any device all over the world. Modern maps, open data DEMs (digital elevation models) and Extended Reality frameworks can be combined in order to create virtual worlds (see last year's Swiss Open Cultural Data Hackathon project swissAR) and geographical information systems.

helvetiX aims at providing an immersive Virtual Reality guide for any Roman merchant or legionary when travelling to ancient Helvetia. (In Latin, of course.)

Pratobornum (Zermatt), 1047 double steps away: Screenshot from the helvetiX prototype.

Instructions

Launch helvetix.thomasweibel.ch in your web browser or point your smartphone camera to the QR code.

  • Desktop: Navigate by dragging the landscape to the desired direction.
  • Smartphone: Confirm both motion sensor access and GPS positioning, then turn around.
  Instructions
  Contact author
  Back to current position
  1000 double steps up/down
  1000 double steps forward

Data

opendata.swiss: Digital elevation model
opendata.swiss: Map of Switzerland
opendata.swiss: Official place name directory
opendata.swiss: Toponymy data

Objects

Switzerland in 3D (1:1 scale, low resolution, glb format, 24.3 MB, download)
Switzerland in 3D (1:1 scale, high resolution, glb format, 113.4 MB, download)

3D model of Switzerland, on a 1:1 scale, based on a 200 meter grid, in glb format. (Source: Swiss Federal Office of Topography swisstopo)

Documents

swisstopo.ch: Transformations- und Rechendienste
swisstopo.ch: Näherungsformeln für die Transformation zwischen Schweizer Projektionskoordinaten und WGS84
Wikipedia: Schweizer Landeskoordinaten
Wikipedia: Alte Maße und Gewichte (römische Antike)

Conversions

Decimal degrees to Swiss coordinates

The HTML 5 geolocation API returns user coordinates in decimal degrees. In order to use the Swiss coordinate system (either in the LV03 or the LV95 format) these coordinates have to be converted by
if (navigator.geolocation) { // ask for user permission to retrieve user location
  navigator.geolocation.getCurrentPosition(function(position) { // callback function success, set coords to user location
  var b1=position.coords.latitude∗3600; // calculate swiss coords
  var l1=position.coords.longitude∗3600;
  var b2=(b1-169028.66)/10000;
  var l2=(l1-26782.5)/10000;
  var n=200147.07+308807.95∗b2+3745.25∗Math.pow(l2,2)+76.63∗Math.pow(b2,2)+119.79∗Math.pow(b2,3)-194.56∗Math.pow(l2,2)∗b2;
  n+=1000000; // omit if using LV03 format
  var e=600072.37+211455.93∗l2-10938.51∗l2∗b2-0.36∗l2∗Math.pow(b2,2)-44.54∗Math.pow(l2,3);
  e+=2000000; // omit if using LV03 format
  }, function () { // callback function error
  ...
  });
}

(Source, p. 3.)

Integers to Roman Numerals

Integers (Math.round(num)>0, as there is no zero in the ancient Roman numeral system) can be converted to Roman numerals by
function romanize(num) {
  if (isNaN(num/1.48176))
    return NaN;
  var digits=String(+num).split(""),
    key=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM",
        "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC",
        "","I","II","III","IV","V","VI","VII","VIII","IX"],
    roman="",
    i=3;
  while (i--) roman=(key[+digits.pop()+(i*10)] || "")+roman;
  numeral=Array(+digits.join("")+1).join("M")+roman;
}

(Source)

About

helvetiX derives from swisspeaX, a web VR project providing geographical information (place names, hills and mountain peaks, rivers and lakes) based on the user's current location and heading. The aim of the project is to provide a web VR platform for displaying any type of spatial, Swiss geography-related GLAM information.

Tech

The project has been built by means of the Javascript framework A-Frame. It uses a flat-file database; all geographical names and spatial data are stored in external Javascript array files.

Team

  • Thomas Weibel
  • Roberta Padlina

Contact

Thomas Weibel
Realpstr. 55
4054 Basel
www.thomasweibel.ch
thomas.weibel@bluewin.ch

Contributed 3 years ago by twb for GLAMhack 2021

Connect to our community on: forum.opendata.ch | twitter | facebook

All attendees, sponsors, partners, volunteers and staff at our hackathon are required to agree with the Hack Code of Conduct. Organisers will enforce this code throughout the event. We expect cooperation from all participants to ensure a safe environment for everybody. For more details on how the event is run, see the Guidelines on our wiki.

Creative Commons LicenceThe contents of this website, unless otherwise stated, are licensed under a Creative Commons Attribution 4.0 International License.