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.


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.
  Contact author
  Back to current position
  1000 double steps up/down
  1000 double steps forward


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


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)


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)


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(""),
  while (i--) roman=(key[+digits.pop()+(i*10)] || "")+roman;



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.


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.


  • Thomas Weibel
  • Roberta Padlina


Thomas Weibel
Realpstr. 55
4054 Basel

Edited content

27.04.2021 09:16 ~ twb

Event finished

17.04.2021 17:30

A beta version has been deployed is being tested.

17.04.2021 13:14 ~ twb

Roberta Padlina has joined the team.

17.04.2021 13:13 ~ twb

helvetiX v0.1 has gone live at https://helvetix.thomasweibel.ch

17.04.2021 13:12 ~ twb

Edited content

17.04.2021 11:34 ~ twb

Event started

16.04.2021 08:30

Joined the team

26.02.2021 16:31 ~ twb

Challenge posted

26.02.2021 16:31 ~ twb
Contributed 2 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.

GLAMhack 2021