Het schip in 3D

Zelf een 3D-scan van je schip maken

Hoe je met een telefoon en een Mac een draaibaar 3D-model van je modelschip maakt. Geen scanner, geen abonnement, geen dienst die je foto's ziet. Alleen een middag fotograferen en een avond rekenen.

Download als PDF Download de scripts

Het model op de 3D-pagina is gemaakt met fotogrammetrie: je fotografeert het schip van alle kanten, en software rekent terug waar elk punt in de ruimte zit. Wat je overhoudt is een net van driehoekjes met je eigen foto’s als huid eroverheen. Deze handleiding is wat ik zelf had willen hebben voor ik begon. Hij bevat ook wat er de eerste keer misging, want daar leer je het meest van.

Eerste scan: binnen, 221 foto's. Wazige verschansing, vlekkerige romp, schaduwen ingebakken.
Poging 1: binnen onder lampen, 221 foto's van een meter afstand. De romp is vlekkerig, de verschansing is pap.
Tweede scan: buiten, 1103 foto's. Koperplaten, geschutspoorten en spiegelramen zijn te onderscheiden.
Poging 2: buiten in de schaduw, 1103 foto's, met een apart rondje om elk onderdeel. Zelfde schip, zelfde telefoon.

1. Wat je nodig hebt

Een telefoon met een goede camera. Elke iPhone of Android van de laatste jaren volstaat. Je hebt geen LiDAR nodig; dat dacht ik eerst ook, maar de dieptesensor speelt bij deze methode geen rol. Wat telt is de gewone camera en of jij hem stilhoudt.

Een Mac met Apple Silicon (M1 of nieuwer, macOS 14 of nieuwer) voor de verwerking. Apple heeft de fotogrammetrie ingebouwd in het besturingssysteem, en die is goed en gratis. Heb je een Windows-machine, dan zijn RealityScan (Epic, gratis) en Meshroom (open source) de alternatieven; de fotografie is hetzelfde, alleen stap 6 verschilt.

Een middag met bewolkt weer. Buiten, in de schaduw, met egaal licht. Dat blijkt belangrijker dan welk apparaat dan ook.

Geduld voor het rekenen. Duizend foto’s kostten op een MacBook Pro twee en een half uur. Dat doet hij zelf, jij hoeft er niet bij te blijven.

2. De opstelling

Alles staat of valt hiermee. De software zoekt in elke foto naar herkenningspunten en probeert die tussen foto’s terug te vinden. Alles wat verandert terwijl jij om het schip heen loopt, maakt dat moeilijker.

Buiten, in de schaduw. Mijn eerste poging was binnen, met twee lampen. Het resultaat had ingebakken slagschaduwen en een romp die van kleur wisselde afhankelijk van waar ik stond. De tweede poging was buiten op een bewolkte dag, en dat verschil zie je hierboven. Zonder direct zonlicht is het licht van alle kanten gelijk, en dat is precies wat de software wil. Geen zon, ook niet een beetje: een wolk die wegtrekt halverwege de sessie bederft de helft van je foto’s.

Effen achtergrond. Een laken, een groot vel karton of een kale muur. Egaal grijs of donker werkt het best. Geen boekenkast, geen heg met blaadjes die bewegen, geen raam met uitzicht.

Het schip staat stil. Op zijn standaard, midden op een tafel, met ruimte om er helemaal omheen te lopen. Verplaats het schip niet tijdens de sessie, ook niet een klein stukje. Draai je het toch, dan is dat een nieuwe sessie.

Wat structuur onder het schip. Leg een krant of een stuk gekreukt papier onder de standaard. Dat geeft de software houvast op de ondergrond. Een spiegelend tafelblad is juist lastig.

3. De telefoon instellen

Gewoon de Camera-app. Geen portretmodus, geen filters, geen flits.

WatInstelling
Camera1× hoofdlens
ModusFoto
Flitsuit
Live Photouit
Nachtmodusuit
FormaatHEIC of JPEG, hoogste kwaliteit

Altijd dezelfde lens, dat is het belangrijkste. De reconstructie gaat ervan uit dat alle foto’s door hetzelfde objectief zijn genomen. Wisselt de telefoon halverwege van lens, dan klopt de meetkunde niet meer. Op een iPhone gebeurt dat op twee manieren zonder dat je het merkt: de zoomknoppen (0,5× is de groothoek, 2× en 3× de telelens) en de macrostand, die vanzelf inschakelt als je dichter dan ongeveer vijftien centimeter komt.

Zet dit één keer goed:

WaarWat
Instellingen, Camera, Macrobedieningaan
Instellingen, Camera, Bewaar instellingen, Macrobedieningaan
In de Camera-app: het bloemetje linksonderaantikken zodra het verschijnt

Met Macrobediening aan verschijnt er een bloemetje in beeld zodra de telefoon naar macro wil overschakelen. Tik je dat aan, dan blijft hij op de hoofdlens. Met de bewaarstand onthoudt hij die keuze. Staat Macrobediening uit, dan schakelt hij stiekem om zonder dat je iets ziet.

Achteraf kun je het controleren: in elke foto staat welke brandpuntsafstand is gebruikt. Op een Mac: mdls -name kMDItemFocalLength35mm foto.heic. Alle foto’s moeten hetzelfde getal geven.

4. Drie ringen om het hele schip

Eerst de vorm. Je loopt drie keer helemaal rond, elke keer op een andere hoogte, en bij elke stap maak je één foto met het hele schip in beeld. Niet inzoomen, niet bijsnijden.

boegspiegelstuurboordbakboord
Eén ring is 36 foto's: elke stap ongeveer een tiende slag, dus zo'n tien graden.
laaghoogring 1ring 2ring 3
Ring 1 net boven de reling, ring 2 op ooghoogte, ring 3 schuin van boven.

Ring 1, laag. Camera net boven de reling, bijna op dekhoogte. Hiermee pak je de romp, de bekopering en de geschutspoorten.

Ring 2, ooghoogte. Ongeveer een halve meter boven het dek, schuin naar beneden. Dit is de belangrijkste ring.

Ring 3, hoog. Zo steil mogelijk van boven, armen omhoog. Hiermee komt het dek met alle inrichting binnen.

Elke ring compleet. Helemaal rond, ook langs de saaie kant. Een gat in de ring wordt een gat in het model.

Op welke afstand. Ga zo staan dat het schip ongeveer vier vijfde van de lange zijde van het beeld vult. Met de hoofdlens op 1× kom je dan op ongeveer een meter uit. Houd die afstand binnen één ring gelijk; dat is belangrijker dan het precieze getal.

Genoeg overlap. Twee foto’s naast elkaar moeten elkaar flink overlappen, mik op zeventig procent. Zet één kleine stap opzij tussen twee foto’s, niet een hele pas. Een ring is dan zo’n 36 foto’s.

overlapfoto 1foto 2foto 3
Zet één kleine stap opzij tussen twee foto's, niet een hele pas.

5. Dan elk onderdeel apart

Dit is de stap die het verschil maakte tussen mijn eerste en tweede poging, en die in de meeste handleidingen ontbreekt.

De drie ringen leveren de vorm van het schip, maar op een meter afstand valt er nog geen vier pixels op een millimeter schip. Een kanon van twee centimeter is dan een vlek van tachtig pixels. Dat is genoeg om te zien dat er iets staat, niet om te zien wat.

Daarom ga je daarna per onderdeel te werk. Kies een onderdeel, ga op dertig tot vijftig centimeter staan, en maak er een eigen rondje omheen: een halve cirkel er langs op ooghoogte van het onderdeel, en een halve cirkel er overheen van boven. Tien tot twintig foto’s per onderdeel, en dan het volgende. Op dertig centimeter vallen er dertien pixels op een millimeter, ruim drie keer zoveel als op een meter.

Onderdelen die dat bij een fregat verdienen:

  • de spiegel met de ramen en de galerijen, van bakboord naar stuurboord in een kwart cirkel
  • het galjoen en de boeg, ook schuin van onderen
  • elk kanon apart, of in elk geval elke tweede
  • de trap midscheeps, de luiken, het spil, de pompen
  • de hangmatkranen en het net, over de hele lengte van de verschansing
  • het roer en het hek
  • het dek recht van boven, in stroken van boeg naar spiegel

Zo kwam ik op 1103 foto’s, en dat aantal is geen probleem. De software heeft aan meer foto’s meer houvast, niet minder. Het enige wat het kost is rekentijd. Wat wél telt is dat elk rondje aansluit op de ringen: laat in de eerste en laatste foto van een onderdeelrondje wat van de omgeving zien, dan kan de software het rondje aan de rest van het schip hangen.

Let op de scherptediepte. Op dertig centimeter is nog maar een plak van een paar centimeter scherp. Houd de telefoon daarom zo evenwijdig mogelijk aan het vlak dat je fotografeert, en tik op het onderdeel om scherp te stellen. Wil hij niet scherpstellen, dan sta je te dichtbij.

Het bloemetje. Juist hier springt de telefoon naar macro. Kijk bij elk onderdeel of het bloemetje in beeld staat en tik het aan.

6. Wat het model kapotmaakt

  • Het schip verplaatsen halverwege de sessie.
  • Inzoomen, of van lens wisselen.
  • Wisselend licht, bijvoorbeeld de zon die doorbreekt.
  • Portretmodus of een filter, waardoor de randen kunstmatig vervagen.
  • Bewegende dingen in beeld, zoals een hand of een kat.
  • Foto’s achteraf bijsnijden of rechtzetten.
  • Onscherpe foto’s. Druk pas af als je even stilstaat.

En wat gewoon niet lukt met deze techniek: dunne onderdelen met doorkijk. Bij mijn model liepen het galjoen en de regels dood in een witte klont, de touwen werden blobben en het hangmatnet schuim. De camera kijkt door die onderdelen heen naar de achtergrond, en de berekening kan dan niet bepalen wat voor en wat achter is. Want en tuigage van een kwart millimeter zijn voor deze techniek onzichtbaar. Scan het schip dus vóór je gaat tuigen, of neem dat verlies.

7. Verwerken op de Mac

Apple’s fotogrammetrie zit in het besturingssysteem, maar Apple levert er geen programma bij. Je hebt een klein stuk code nodig dat hem aanroept. Dat staat in de scripts bij deze handleiding, met een README.

De stappen:

  1. Alle foto’s in één map. Geen submappen, niets weggooien, niets sorteren. Onscherpe foto’s laat de software zelf vallen.
  2. Reconstrueren. ./fotogrammetrie fotos/ schip.usdz medium. Op detailniveau medium is een model voor een website ruim goed genoeg. Reken op een uur per vierhonderd foto’s.
  3. Bijsnijden. Het model bevat ook de tafel en een stuk vloer. bijsnijden.py haalt alles buiten een kader weg, met behoud van de textuur.
  4. Kleiner maken voor het web. naar_glb.py zet het model om naar GLB, het formaat dat browsers begrijpen, en gltf-transform comprimeert de textuur naar WebP. Ons model ging van 52 MB naar 2,9 MB zonder een driehoekje te verliezen.

Het USDZ-bestand uit stap 2 kun je meteen op een iPhone openen: die zet het schip dan met de camera op je eigen tafel.

8. Op je eigen site

Wij gebruiken model-viewer, een vrij webcomponent van Google. Eén regel HTML:

<model-viewer src="/3d/schip.glb" camera-controls poster="/3d/schip.jpg"></model-viewer>

Twee keuzes die wij maakten en die ik aanraad. Host het script zelf in plaats van via een CDN, dan gaat er geen verzoek van je bezoekers naar Google. En laad het model pas als iemand op een knop drukt: bijna drie megabyte sturen naar iedereen die langsloopt is niet netjes, en op een telefoon kost het tekenen ook echt iets. Tot die klik staat er een stilstaande opname.

Afvinklijst

  • Bewolkt weer, buiten in de schaduw
  • Effen achtergrond, iets met structuur onder de standaard
  • Schip staat vast, met ruimte om er helemaal omheen te lopen
  • Camera op 1×, flits uit, Live Photo uit, nachtmodus uit, geen portretmodus
  • Macrobediening aan, en bewaard bij Bewaar instellingen
  • Ring 1 laag, helemaal rond
  • Ring 2 ooghoogte, helemaal rond
  • Ring 3 hoog, helemaal rond
  • Spiegel: kwart cirkel, laag en hoog
  • Galjoen en boeg, ook van onderen
  • Elk kanon, de trap, luiken, spil, pompen
  • Hangmatkranen over de hele lengte
  • Dek recht van boven, in stroken
  • Bij elk onderdeel het bloemetje aangetikt
  • Alles in één map, niets weggegooid

Deze handleiding hoort bij het 3D-model op hmsdiana.nl. Overnemen mag met bronvermelding, niet commercieel (CC BY-NC 4.0). Versie 2026-10-04.