home/ work/ANWB
International · 2-year project · Delivered

ANWB

Virtual walks for European campsites, commissioned by ANWB — the Royal Dutch Touring Club, ~4M members. 160+ campsites, 1000+ virtual tours, 25,000+ stitched panorama images, on-site across half of Europe over two seasons, embedded into ANWB's camping booking platform.

Client ANWB (Royal Dutch Touring Club)
Duration 2020 → 2021 · 2 years on-site + delivery
Scope 160+ campsites · 1000+ tours · 25 000+ images
Stack JavaScript · Marzipano · Node · embeddable widget
Coverage France · Italy · Spain · Croatia · Slovenia · Benelux · DE · AT
ANWB screenshot
Campsites toured
160+
across France, Italy, Spain, Croatia, Slovenia, Benelux, Germany, Austria
Virtual tours delivered
1000+
multiple panoramic viewpoints per campsite, linked into walkable tours
Images stitched
25 000+
raw panorama frames captured on-site and stitched into 360° spheres
Project duration
2 years
two photography seasons + integration with the ANWB camping platform

Overview

ANWBAlgemene Nederlandse Wielrijdersbond, the Royal Dutch Touring Club — is the largest membership organisation in the Netherlands, with around 4 million members. Among many other things, they operate a camping booking platform that lists hundreds of campsites across Europe. ANWB wanted to give online browsers a sense of actually walking the camp before booking — not just a slideshow of edited photos.

Numen was commissioned to make that happen at scale. Over two years and two photography seasons the project covered 160+ campsites across France, Italy, Spain, Croatia, Slovenia, Benelux, Germany and Austria — the map above shows the actual on-site locations. The deliverable: 1000+ walkable virtual tours stitched from more than 25 000 raw panorama frames, served via a custom Marzipano-based viewer and embedded into the ANWB camping platform as a drop-in widget.

Three layers in one engagement: field photography (months on the road with the cameras), 360° viewer engineering (custom build on Marzipano with brand-aligned UI, hotspots, minimap), and embedding logistics (iframe-sandboxed widget the ANWB web team could slot into any campsite listing without touching our code).

What we built

Field photography. The team travelled to multiple European countries across a season to capture each campsite’s terrain: reception, common areas, pitches, sanitary facilities, the surrounding nature. Each campsite produced multiple panoramic viewpoints so a browsing user could click between them and walk the camp virtually — not just rotate from a single point.

360° viewer. A custom integration of Marzipano with hotspots (points of interest linking to the next viewpoint), an overlay minimap, and full-screen controls. The default Marzipano UI was replaced with a brand-aligned skin so the viewer felt native to the ANWB platform.

Performance. Each campsite is several hundred megabytes of raw panorama imagery; even tiled, multires assets need careful delivery. We bundled per-camp asset packages on a CDN, lazy-initialised the viewer on user gesture (tap to activate on mobile), and used a flat poster photo as the LCP element so the initial render isn’t blocked on WebGL.

Embed widget. Delivered as a drop-in script that ANWB’s web team could include on any campsite’s listing page. Iframe-sandboxed to isolate CSS, with postMessage for the few cross-frame UX details (full-screen toggle, exit handling, analytics events).

Why this matters

International client work proves a particular kind of capability — not just can you code but can you deliver across borders, seasons, and a different organisation’s web team. ANWB’s 2021 engagement is the example we still point to when a non-Slovenian client asks if Numen can run a project where the photography happens in Croatia, the integration happens with a Dutch web team, and the language of business is English.

Even with the project’s surface domain being campsites, the engineering principles applied are the same ones we apply to regulated fintech and multi-agent AI integrations: fixed scope before any invoicing, embed logic isolated from the host platform, predictable performance budgets, and delivery on the agreed schedule.

International work is rarely about a different language in the codebase. It's about field logistics — equipment, seasons, permissions, embassy-clearance for a tripod. The code is the easy part.
Davor Majc, Numen
03 What I delivered · challenges solved

Six things shipped,
three hard ones solved.

Key contributions

  • Led the full delivery of the virtual-walk component across 160+ campsites — viewer architecture, hosting strategy, embed integration into the ANWB camping booking platform.
  • Personally captured and stitched more than 25 000 raw panorama frames on-site across two seasons — France, Italy, Spain, Croatia, Slovenia, Benelux, Germany, Austria — into 1000+ walkable virtual tours, multiple linked viewpoints per camp.
  • Designed and built a custom Marzipano-based viewer with hotspots linking each panorama to the next, an overlay minimap so the user always knew where they were on the camp, and full-screen controls — replacing the default Marzipano UI with a brand-aligned skin so the viewer felt native to the ANWB platform.
  • Coordinated international field-photography logistics — multi-week trips per region, equipment crossing borders, weather and seasonal windows, on-site permissions negotiated with each camp's management.
  • Tuned image delivery for mobile data — Marzipano multires tiling, per-camp asset bundles on a CDN, progressive panorama loading, flat poster image as the LCP fallback so the initial render isn't blocked on WebGL.
  • Delivered an embeddable widget so ANWB's web team could drop the viewer into any campsite listing page without touching our code — iframe-sandboxed, postMessage for cross-frame UX (full-screen toggles, analytics events).

Challenges solved

  • Field-photography at this scale — 160+ camps across 8 countries over two seasons — meant treating logistics as a first-class engineering problem: route planning, weather windows, equipment redundancy, on-site permissions per camp, daily data backup discipline so a lost SD card didn't cost a country.
  • Performance across 25 000+ high-resolution panorama frames stitched into 1000+ multires assets — solved with tiled image delivery (Marzipano's native multires format), CDN bundling, per-camp lazy initialisation, and a flat poster image on first paint.
  • Embedding inside ANWB's existing booking platform without conflicting with their CSS, analytics, or layout — solved by sandboxing the viewer in an iframe with postMessage for the few details that need to cross the frame boundary (full-screen toggles, analytics events, exit handling).
04 Tech stack

What's under the hood.

JavaScriptMarzipano360° photographyNodeEmbeddable widgetMulti-country logistics
Let's talk

Ready to fix, build,
or scale?

30 minutes, with me personally. I'll read your system like a log file and tell you what I'd do first. No pitch deck, no sales funnel.

Davor Majc, founder, Numen

What you get on call
→ a one-page diagnosis
→ 2–3 fix shapes, ranked by leverage
→ rough cost + timeline for each
→ yes/no — am I the right fit
+386 40 828 474 · Blejska Dobrava, SI