STL vs OBJ vs 3MF: welk 3D-bestandsformaat kiest u?
Gebruik STL voor een eenkleurige print die u alleen hoeft te slicen, OBJ wanneer het model texturen bevat voor rendering of een game-engine, en 3MF wanneer uw slicer het ondersteunt en u wilt dat eenheden, kleuren en meerdere onderdelen onderweg behouden blijven. Het formaat bepaalt welke metadata met de mesh meegaat; het bepaalt nooit of de mesh zelf in orde is.
STL: een lijst driehoeken en verder niets
STL is in 1987 geschreven voor de eerste stereolithografiemachines van 3D Systems, en dat zie je aan het ontwerp. Een bestand is een platte lijst driehoeken, elk beschreven door een facetnormaal en drie hoekpunten. Er is geen gedeelde vertextabel, dus een hoekpunt waar zes driehoeken samenkomen wordt zes keer weggeschreven. Er is ook geen eenheidsveld: een coördinaat van 25 kan millimeters, inches of meters betekenen, en vrijwel elke slicer gaat uit van millimeters. Kleur, textuur en onderdeelnamen horen niet bij het basisformaat, en juist daarom lezen alle slicers, CAD-pakketten en printdiensten het nog steeds.
STL kent twee codeervormen. ASCII-STL schrijft alles als tekst uit, met regels als facet normal, outer loop en vertex 12.5 0 3.2, zodat je het in een teksteditor kunt openen en de getallen kunt lezen. Binaire STL begint met een header van 80 bytes en een driehoekenteller van 4 bytes, en slaat daarna elke driehoek op als twaalf floats van 4 bytes plus een attribuutveld van 2 bytes: precies 50 bytes per driehoek. Zo is de grootte makkelijk te voorspellen. Een model van een miljoen driehoeken is als binair bestand ongeveer 50 MB; dezelfde mesh in ASCII is meestal vier tot zes keer groter, omdat elk cijfer een teken wordt.
De eenvoud is zowel de kracht als de valkuil. Een STL kan niet vertellen of het één onderdeel of drie moest zijn, of het in inches is geëxporteerd, of de driehoeken wel een massief lichaam omsluiten. De slicer leidt dat af uit ruwe coördinaten, en als die verkeerd gokt krijg je een onderdeel dat 25,4 keer te klein is of een ontbrekende wand. Voor een eigen ontwerp in één kleur, geëxporteerd in millimeters, maakt dat niets uit en wordt STL het minst snel geweigerd.
OBJ: polygonen, UV's en een apart materiaalbestand
OBJ komt van Wavefront Technologies, wier software Advanced Visualizer het eind jaren tachtig gebruikte, en het verspreidde zich in de jaren negentig als het tekstformaat dat bijna elk 3D-programma kon uitwisselen. Anders dan STL bewaart het een vertexlijst en bouwt het vlakken op uit indices, zodat een gedeeld hoekpunt één keer wordt opgeslagen, en vlakken driehoeken, vierhoeken of grotere polygonen kunnen zijn. Regels met v bevatten posities, vt textuurcoördinaten (UV's), vn normalen en f de vlakken. Groepen (g) en objecten (o) geven onderdelen een naam, dus OBJ overleeft een heen-en-weerreis via Blender, Maya of ZBrush met behoud van de structuur.
Het uiterlijk staat buiten het .obj-bestand. Een mtllib-regel noemt een bijbehorend .mtl-bestand en usemtl-regels wijzen materialen aan vlakken toe. Het .mtl-bestand slaat kleuren op zoals Kd (diffuus) en verwijst naar textuurafbeeldingen met regels als map_Kd wood.png. Een OBJ met textuur bestaat dus uit minstens drie bestanden: de geometrie, de materiaalbibliotheek en een of meer afbeeldingen, allemaal via relatieve paden. Stuur je alleen het .obj, dan ziet de ontvanger een grijs model. Die scheiding is handig in game- en VFX-pipelines, waar artiesten texturen verwisselen zonder de geometrie aan te raken, en het is de meest voorkomende reden dat een gedownload model er verkeerd uitziet.
OBJ heeft dezelfde blinde vlek voor schaal als STL: het bewaart kale getallen zonder eenheid. De meeste modelleertools schrijven meters of centimeters, terwijl slicers millimeters lezen, dus een OBJ uit een game-assetstore kan 10 of 1.000 keer ernaast zitten. Voor printen voegt OBJ niets toe wat een slicer gebruikt, behalve kleur per vertex in enkele tools. Wil je een kunstasset printen, bewaar dan het liefst de texturen voor rendering en geef de slicer een schone mesh. Andersom is een STL omzetten naar OBJ de kortste weg van een printmodel naar een render- of gameworkflow.
3MF: een ZIP-pakket gemaakt voor 3D-printen
3MF werd in 2015 gepubliceerd door het 3MF Consortium, een groep die Microsoft startte met bedrijven uit de print- en CAD-industrie. Een .3mf-bestand is een ZIP-archief, dezelfde containervorm als besproken in ZIP vs RAR vs 7z. Hernoem het naar .zip en je vindt een XML-bestand 3D/3dmodel.model met de mesh, een content-typesbestand, relatiebestanden en vaak miniaturen en slicerconfiguratie. Elk model geeft zijn eenheid aan (micron, millimeter, centimeter, inch, voet of meter), dus het schaalprobleem van STL en OBJ komt gewoon niet voor. Kleuren, basismaterialen, meerdere objecten en hun plaats op het printbed maken allemaal deel uit van de specificatie.
De specificatie eist ook dat meshes manifold en consistent georiënteerd zijn: elke rand gedeeld door precies twee driehoeken, allemaal naar buiten gericht. Exporters die zich aan de regels houden kunnen de open, zichzelf snijdende geometrie die een STL gewoon bevat niet wegschrijven. De ondersteuning is breed bij huidige tools. PrusaSlicer, Bambu Studio, OrcaSlicer en UltiMaker Cura lezen 3MF, PrusaSlicer en Bambu Studio slaan hun hele project op als .3mf met printinstellingen en geschilderde kleuren erin, en de app 3D Builder van Microsoft op Windows opent het direct. De zwakke plek is oudere firmware, portalen van printfarms en CAD-importers die nog STL verwachten; zet de 3MF daarvoor om naar STL en accepteer dat de extra's achterblijven.
| from ↓ · to → | Units | Color | Textures | Meerdere onderdelen | Printinstellingen | Manifoldregel |
|---|---|---|---|---|---|---|
| STL | – STL to Units: no | – STL to Color: no | – STL to Textures: no | – STL to Meerdere onderdelen: no | – STL to Printinstellingen: no | – STL to Manifoldregel: no |
| OBJ | – OBJ to Units: no | OBJ to Color: yes | OBJ to Textures: yes | OBJ to Meerdere onderdelen: yes | – OBJ to Printinstellingen: no | – OBJ to Manifoldregel: no |
| 3MF | 3MF to Units: yes | 3MF to Color: yes | 3MF to Textures: yes | 3MF to Meerdere onderdelen: yes | 3MF to Printinstellingen: yes | 3MF to Manifoldregel: yes |
Het juiste formaat voor de taak
Het juiste formaat hangt af van waar het bestand heen gaat, niet van welk formaat nieuwer is. Is de volgende stop een slicer en is het onderdeel eenkleurig, dan is STL prima, en het is nog steeds het formaat dat elk forum, elke modelbibliotheek en elke printdienst begrijpt. Is de volgende stop een renderer, een game-engine of de modelleertool van een andere artiest, dan behoudt OBJ de UV's, normalen en benoemde groepen die STL weggooit, en de tekstvorm maakt problemen makkelijk te inspecteren.
3MF verdient zijn plek als het bestand meer bevat dan geometrie. Een meerkleurige print geschilderd in Bambu Studio, een plaat met twaalf onderdelen voor één klus, een onderdeel ontworpen in inches of een project dat je wilt heropenen met dezelfde laaghoogte en vulling: ze vragen allemaal om 3MF, want geen ander formaat hier kan die informatie bewaren. Heb je meerdere bestemmingen, bewaar dan de rijkste versie als hoofdkopie en exporteer eenvoudiger versies daarvan met een 3D-modelconverter in plaats van conversies te ketenen.
STL voor eenvoudige prints
Eén onderdeel, één kleur, geëxporteerd in millimeters. Opent in elke slicer, CAD-importdialoog en uploadformulier van printdiensten.
OBJ voor modellen met textuur
UV's, normalen en benoemde groepen voor Blender, Maya, Unity of Unreal. Lever het .mtl-bestand en de textuurafbeeldingen mee.
3MF voor moderne slicers
Echte eenheden, kleuren, meerdere objecten en printinstellingen in één ZIP. Eigen projectformaat van PrusaSlicer en Bambu Studio.
Vijf manieren waarop een 3D-bestand misgaat
De meeste mislukte prints en kapotte imports die aan het formaat worden toegeschreven, zijn in werkelijkheid problemen in de mesh of in wat het ontvangende programma erover aannam. STL is het kwetsbaarst omdat het geen metadata bevat om fouten op te vangen; OBJ deelt de schaalproblemen en het probleem van ontbrekende bestanden; 3MF voorkomt de meeste door zijn ontwerp, al kan een slordige exporter nog steeds een slechte mesh schrijven. Open de rijen hieronder om te zien hoe elk probleem eruitziet en waar het meestal vandaan komt.
Niet-manifold mesh
Randen gedeeld door één driehoek of door drie of meer, gaten tussen oppervlakken of wanden zonder dikte. De slicer toont ontbrekende lagen, willekeurige gaten of een waarschuwing over open randen. De oorzaak ligt in het modelleren of exporteren, vaak door onderdelen samen te voegen die elkaar alleen raken.
Omgekeerde normalen
Sommige driehoeken wijzen naar binnen. Renderers tonen zwarte of doorzichtige plekken en slicers kunnen het gebied als lege ruimte behandelen. Een opdracht om normalen opnieuw te berekenen in Blender, Meshmixer of de reparatietool van de slicer lost het op.
Verwarring tussen millimeters en inches
Een onderdeel getekend in inches komt 25,4 keer te klein aan in een slicer die millimeters aanneemt; centimeters gelezen als millimeters geven een fout van factor 10. STL en OBJ kunnen de eenheid niet vastleggen, dus stel je die in bij het exporteren of converteren.
Ontbrekend .mtl-bestand of ontbrekende texturen
Een OBJ die grijs of magenta laadt, mist zijn materiaalbibliotheek of afbeeldingen, of de paden in het .mtl wijzen naar een map op de computer van de oorspronkelijke maker. Houd alle bestanden in één map en zip ze samen.
Enorme ASCII-STL-bestanden
Een gedetailleerde scan opgeslagen als ASCII-STL kan enkele honderden megabytes beslaan, wat slicers vertraagt en uploadlimieten overschrijdt. Dezelfde mesh opnieuw exporteren als binaire STL verkleint hem tot ongeveer een vijfde zonder één driehoek te veranderen.
Hoe groot elk formaat doorgaans wordt
De grootte volgt uit de structuur. Binaire STL ligt vast op 50 bytes per driehoek, dus je kunt hem vóór het exporteren uitrekenen. ASCII-STL herhaalt elk hoekpunt als tekst en komt meestal vier tot zes keer boven binair uit. OBJ slaat elk gedeeld vertex één keer op en verwijst er via een index naar, dus voor een typische gesloten mesh is het kleiner dan ASCII-STL en ongeveer in de buurt van binaire STL, groter als er ook UV's en normalen in zitten. 3MF slaat geïndexeerde XML op en comprimeert die in de ZIP, waardoor het voor dezelfde geometrie meestal de kleinste van de drie is.
De cijfers hieronder gelden voor een typische gesloten mesh van ongeveer 500.000 driehoeken, zoals een gedetailleerd beeldje. Echte bestanden variëren met de precisie van coördinaten en de exporter, dus zie ze als ordes van grootte, handig als een printdienst uploads begrenst of een STL uit een 3MF meerdere keren groter uitvalt.
- Binaire STL (500.000 driehoeken × 50 bytes)
- ≈ 25 MB
- ASCII-STL, dezelfde mesh, typisch
- ≈ 100–150 MB
- OBJ zonder UV's, typisch
- ≈ 15–30 MB
- 3MF na ZIP-compressie, typisch
- ≈ 5–12 MB
Wat converteren oplost en wat het nooit zal oplossen
Een conversie leest de driehoeken uit de ene container en schrijft ze in een andere. Alles wat het doelformaat kan uitdrukken gaat mee; wat niet kan, valt weg. Daarom is STL naar OBJ verliesvrij voor geometrie, verliest 3MF naar STL kleuren, eenheden en plaatindeling, en verliest OBJ naar STL texturen en onderdeelnamen. In de 3D-tools van UltKit zijn de extra keuzes expliciet: Eenheden van het model vertelt de converter welke schaal de bron gebruikt, Verticale as regelt het verschil tussen Y-omhoog en Z-omhoog tussen game-engines en slicers, en Samenvoegen tot één mesh bepaalt of losse onderdelen gescheiden blijven.
Wat geen enkele conversie doet, is een mesh repareren. Heeft een STL een gat, dan heeft de OBJ die je ervan maakt hetzelfde gat, en een 3MF-exporter weigert hem of schrijft hem toch weg. Reparatie is een aparte stap in een meshtool of de ingebouwde reparatiefunctie van de slicer, en doe je het best één keer, in je hoofdbestand, voordat je iets anders exporteert. Hetzelfde geldt voor schaal: converteren kan niet weten dat een onderdeel in inches bedoeld was, tenzij je het zegt. Detail werkt net zo: een STL met weinig polygonen wordt een OBJ of 3MF met weinig polygonen, dus exporteer opnieuw vanuit het bronmodel als kwaliteit telt.
Wat een formaatwijziging doet
- Verplaatst dezelfde driehoeken naar een container die een ander programma accepteert
- Past de eenheid toe die je kiest onder Eenheden van het model, en herstelt een schaalfout van 25,4× of 10×
- Draait het model tussen Y-omhoog en Z-omhoog met Verticale as
- Verkleint een ASCII-STL door in plaats daarvan binair te schrijven
- Houdt losse onderdelen gescheiden of voegt ze samen, afhankelijk van Samenvoegen tot één mesh
Wat precies hetzelfde blijft
- Gaten, open randen en non-manifold geometrie
- Omgekeerde of inconsistente normalen
- Zichzelf snijdende onderdelen en wanden zonder dikte
- Detail dat verloren ging toen de mesh voor het eerst werd geëxporteerd
- Kleuren en texturen als het doelformaat er geen plek voor heeft
Keuzetabel: STL, OBJ of 3MF
Twee andere formaten komen steeds ter sprake bij deze vraag. STEP (ISO 10303) slaat exacte lichamen en oppervlakken op in plaats van driehoeken, en is dus het formaat voor als een onderdeel terug moet naar Fusion 360, SolidWorks of FreeCAD om te bewerken. GLB, de binaire vorm van glTF 2.0 van de Khronos Group, verpakt een mesh met materialen en texturen in één bestand in meters en is het formaat om een model op het web of in Android-AR te tonen.
Voor de drie formaten die dit artikel behandelt, vat de tabel hieronder de keuze per bestemming samen. Passen twee rijen, kies dan het formaat met meer informatie en exporteer het eenvoudigere later; van 3MF naar STL gaan is makkelijk, verloren kleuren of eenheden herstellen is handwerk.
| Situatie | Beste formaat | Waarom |
|---|---|---|
| Eenkleurig onderdeel voor elke slicer | STL (binair) | Universele ondersteuning; de slicer heeft niets anders nodig |
| Uploaden naar een modelbibliotheek of printdienst | STL, plus 3MF als dat wordt aangeboden | STL wordt altijd geaccepteerd; 3MF behoudt eenheden en kleuren |
| Meerkleurige of multimaterial-print | 3MF | Enige formaat hier dat kleuren en materialen per onderdeel voor slicers opslaat |
| Plaat met meerdere onderdelen en printinstellingen | 3MF | Slaat objectplaatsing en slicerinstellingen op in één bestand |
| Onderdeel ontworpen in inches | 3MF | Geeft de eenheid aan, dus er wordt niets met 25,4 geschaald |
| Model met textuur voor Blender, Unity of Unreal | OBJ (+ .mtl en afbeeldingen) | Behoudt UV's, normalen en materiaaltoewijzingen |
| Snelle controle in een teksteditor | OBJ of ASCII-STL | Platte tekst die je regel voor regel kunt lezen |
| Oude firmware of software die alleen STL toont | STL | Haal de extra's weg en stuur de mesh |
Belangrijkste punten
- STL slaat alleen driehoeken op: geen eenheden, geen kleur, en 50 bytes per driehoek in binaire vorm.
- OBJ voegt UV's, normalen en benoemde groepen toe, maar kleuren en texturen hangen af van een apart .mtl-bestand en afbeeldingsbestanden.
- 3MF is een ZIP met XML die eenheden, kleuren, meerdere objecten en printinstellingen vastlegt en gesloten meshes eist.
- Gebruik STL voor eenvoudige eenkleurige prints, OBJ voor modellen met textuur in kunst- en gamepipelines, en 3MF zodra je slicer het ondersteunt.
- Converteren verandert de container, niet de mesh: repareer gaten en normalen in een meshtool en stel de eenheid zelf in.
Veelgestelde vragen
Wordt STL vervangen door 3MF?
Langzaam, althans voor printworkflows. PrusaSlicer en Bambu Studio slaan projecten al op als 3MF, maar STL blijft het formaat dat elke tool en elke modelbibliotheek accepteert, dus de twee bestaan nog jaren naast elkaar.
Kan een binaire STL kleur opslaan?
Niet op een standaardmanier. Sommige programma's schrijven kleur in het attribuutveld van 2 bytes bij elke driehoek, maar de meeste slicers negeren dat. Gebruik dus 3MF of OBJ als kleur belangrijk is.
Waarom is mijn OBJ grijs nadat ik hem heb gedownload?
Het .mtl-bestand of de textuurafbeeldingen zijn niet meegekomen, of de paden in het .mtl-bestand verwijzen naar mappen die op uw computer niet bestaan. Zet het .obj-bestand, het .mtl-bestand en de afbeeldingen in één map en laad het model opnieuw.
Geeft een ASCII- of binaire STL een nauwkeurigere print?
In de praktijk print geen van beide nauwkeuriger. Beide beschrijven dezelfde driehoeken. Binair slaat coördinaten op als 32-bit floats en ASCII als tekst, en binaire bestanden zijn meestal enkele malen kleiner.
Kan ik een OBJ weer omzetten naar STL om te printen?
Ja. De driehoeken blijven ongewijzigd, terwijl UV's, materialen en texturen verdwijnen omdat STL daar geen plek voor heeft. Controleer daarna de schaal, want OBJ-bestanden uit modelleerprogramma's staan vaak in meters of centimeters.
Welk formaat gebruik ik om een model te delen zodat anderen het kunnen printen?
Bied een STL aan voor de breedste compatibiliteit. Heeft het model meerdere onderdelen of kleuren, of is het ontworpen in inches, voeg dan een 3MF toe, zodat mensen met een moderne slicer de volledige opzet krijgen.
Lees verder
ZIP vs RAR vs 7z: welk archiefformaat kiest u?
ZIP opent overal, 7z is het kleinst en verbergt bestandsnamen, RAR heeft herstelgegevens. Vergelijk compressie, versleuteling, support en limieten.
Lucas Ferreira · 27 sep 2026 · 11 min leestijd
TTF, OTF of WOFF: welk fontformaat voor pc of website?
Installeer TTF of OTF op Windows, macOS en Linux; gebruik WOFF2 op websites met WOFF als fallback. Inhoud, grootte en wat converteren verandert.
Jonas Weber · 10 sep 2026 · 11 min leestijd
PNG naar SVG converteren: logo's, iconen en lijnwerk
Een PNG wordt pas echt SVG door vectoriseren. Lees welke afbeeldingen geschikt zijn, hoe u de PNG voorbereidt en welke instellingen u kiest.
Jonas Weber · 4 okt 2026 · 12 min leestijd