Updates from Topoprint: Designer, Bridges and Print-on-Demand

Category feature

In December of last year, I released the first version of Topoprint, a web service that creates mini-reliefs of any location in Switzerland as small 3D-printable models—I call them "Topodiscs." I wrote about Topoprint on my blog, and while it was indeed a minimum viable product (MVP), it successfully achieved its goal of creating an automated pipeline to convert open geodata into printable models. It was a lot of fun to hand over actual printed models to friends and family, even though the quality varied a bit depending on my 3D printer's mood1.

In the past few months, I've made significant improvements to the service, and I’d love to share three major updates: bridges with arches, a Topodisc designer, and printing-as-a-service!

Update #1: Bridges as Real 3D Models 🔗

The real beauty of a Topodisc is when you know the area and have an emotional connection to it. Holding the physical disc in your hand feels like a keepsake that reminds you of the place and the memories tied to it. Two years ago, we took a vacation in Graubünden and visited the Landwasser Viaduct. I was truly impressed by the 142-meter-long structure and wanted to print a model of it. Unfortunately, there are no official 3D models of Swiss bridges like there are for buildings, and as far as I know, none specifically for the viaduct. According to swissTLM3D, there are about 6,400 railway bridges and 55,600 road bridges in Switzerland—there's no way to model them all by hand. However, swissTLM3D provides 3D line segments for each bridge. So, I came up with a parameterized modeling approach: taking the 3D line segments from swissTLM3D as input and using a set of parameters to model the Landwasser Viaduct and any other (less complex) bridges:

  • width of the bridge deck
  • size of a bridge pier
  • position of a bridge pier as a sequence of fractions for the bridge segment
  • perpendicular shift of the 3D line segment concerning the centerline of the bridge
  • flag whether an arch is round or rectangular
  • indicator whether the bottom of the pier is larger than the top (important for the Landwasser Viaduct).

Here are some examples where I defined parameters for the bridges:

  • Landwasserviadukt: Completed in 1902, it carries the Rhaetian Railway across the Landwasser River near the town of Filisur. The viaduct is 65 meters high and 136 meters long, with six stone arches and a dramatic curve leading directly into a tunnel.
  • Nydegg Bridge in Bern: Opened in 1844, it connects the Nydegg Church in Bern’s Old Town with the opposite bank of the Aare River, where the Bear Park is located. It’s a stone arch bridge with three arches and is considered a cultural heritage site of national importance.
  • Wipkinger Viadukt in Zürich: Built in 1894, it spans the Limmat River and the former industrial district of Zürich-West. The stone arches once carried trains but now also house shops, cafés, and cultural spaces.

Honestly, there aren’t many more bridges for which I have digitized the parameters so far - here is an the overview of bridges with parameters so far (Spoiler: there aren’t too many yet!). For the rest, I use a default set of parameters, which may not always match reality, especially the position of the piers. If you are really curious, the whole modeling process is coded in the repo for swiss rooftops, which now contains processing for bridges, so it contains significantly more than what I've written in February.

Update #2: Create a Topodisc on a Map 🔗

Back in December, one had chat with a bot (on Mastodon or Telegram) to create a Topodisc. While this was fun to code2, it lacked the joy of directly interacting with the map and positioning the Topodisc precisely. With the new Topodisc Designer, it's so much easier to create the Topodisc just as you want:

  • Find a location: Search for or zoom in on the map.
  • Place a disc: Click on the map to add a disc. Drag the center of the disc to position it.
  • Adjust size: Use the slider to change the coverage of the disc. A larger print size increases your coverage (but also your processing and printing costs).
  • Create it: Click "Create Topodisc," keep the page open, and wait a few minutes (A 10cm Topodisc usually takes about 3-4 minutes to process).

I am by no means a web developer, so please be gentle. Here is a video demonstrating how to create a Topodisc for Château de Chillon near Montreux (click to start):

As a pro feature, you can also change the label that can be attached to the Topodisc (leave the input box empty if you don't want a label). Try it yourself!

Update #3: Printing-as-a-Service 🔗

As I mentioned earlier, one goal was to create an automated end-to-end process. Until now, the final step—the actual printing—was missing.

If you search for "3D printing service", you will find many local and international options. Most providers act as intermediaries for large printing farms, offering various materials and techniques. In Switzerland, only a few companies still operate in-house printers, and most industrial providers focus on B2B services. I recommend Simon from Teil3, who runs over 40 printers in his Altstetten office and offers a simple, fast, and cost-effective service for everyone.

For international orders, CraftCloud has been particularly reliable. They aggregate over 150 professional services globally, offering instant quotes that include shipping. Be aware that tariffs may apply if you ship from a foreign country. 

Both Teil3 and CraftCloud are integrated into Topoprint result page. You can upload your model directly to their server and order a print, which will be delivered to you by mail within a few days. Typical costs range from 30 CHF to 45 CHF for a 10cm print, excluding shipping fees3.

Impressions of some of my printed Topodiscs 🔗

Here are some impressions of actual prints, most of them are self-printed with my cheap but beloved Creality Ender-3 S1, the Burgdorf disc has been printed by Teil3 - definitely a better quality than my own prints. Also, the color "snow white matte" is best suited for prints, especially with buildings.

Behind the Scenes and What's Next 🔗

Behind the scenes, a lot more has changed:

  • The overall pipeline is more robust than before, using the latest data from Swisstopo. There is a lot going on under the hood for an automated build luding generating a dedicated web page for each Topodisc.
  • The actual calculations are running on my own Kubernetes cluster with three Raspberry Pi 5. Processing takes a couple of minutes, and compared to my MacBook Pro (M4 Pro chip), this is about 8-10 times slower. I think this isn’t too bad considering that they are much cheaper than my Mac.
  • Multi-color prints are possible by separating land, water, buildings, and bridges. This is still an experimental feature, but looks awesome if you have a printer which can change filament easily (thanks to a friend for printing this one!):

There are still a lot of ideas in my head, here are three things I have on my list:

  • Roof overhangs for large scales (1:500 and larger). Roof overhangs don't make sense for smaller scales, as the roof would be thinner than the resolution of the printer. But for large scales, it would be nice to see the roof since Swisstopo provides the data (see also the FAQ for Topoprint).
  • A north star to orient the Topodisc. Even if you know the area of the Topodisc, it’s not easy to orient yourself at first. It’s simple to indicate the North star, but I am still looking for a discreet way to put the North star on the disc itself.
  • Improve "watertightness": Sometimes, the 3D volumes are not completely "watertight" - despite efforts in the processing pipelines. I am looking into improving the process, but if your slicer software cannot fix it, you might want to use the Online Repair Tools by FormWare and/or print it anyway and see how it comes out. If you know how to automatically fix this with a Python/Linux-based tool, please get in touch with me.

That's all for now. Are you interested in printing a Topodisc, or have you actually ordered one? I'd love to hear from you. Feel free to get in touch with me!

Image Credits for the Cover: see Wikimedia, This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported2.5 Generic2.0 Generic and 1.0 Genericlicense.


  1. I have a Creality Ender 3 S1, which costs less than $200. 

  2. The bot uses an LLM that turned any text into a Swiss address and a structured parameters for the Topodisc. 

  3. Please note that I do not receive any commissions for referrals. 

To receive site updates, subscribe to the RSS feed or the Atom feed (For an explanation about feeds, have a look at https://aboutfeeds.com).

Alternatively, you can opt to get updates via email by signing up for my newsletter, which is sent no more than once a week and only if there's an update.

Newsletter Subscription

Let me know if there is a problem with the subscription form.

\