Een voortdurende schending van de AGPL door 3D-printerfabrikant Bambu Lab

Tijdens FOSSY 2026 gaven verschillende mensen van de Software Freedom Conservancy (SFC), de organisatie achter de conferentie, een presentatie over een voortdurende schending van de Affero General Public License versie 3 (AGPLv3). Bradley Kühn, Karen Sandler en Denver Gingerich spraken over verschillende aspecten van deze schending, die betrekking heeft op de 3D-printersoftware van Bambu Lab, en over de stappen die worden ondernomen om gebruikers alternatieven te bieden. Een bijzonder interessant aspect is dat de omzeiling die het bedrijf toepast, precies is wat de AGPL is ontworpen om te voorkomen.

Kühn begon de sessie door op te merken dat hij al meer dan 30 jaar activist is in de free and open-source software (FOSS) gemeenschappen en dat "dit moment in de geschiedenis [...] meer kansen voor activisme biedt dan ik in mijn hele carrière heb gezien". In het verleden hebben hij en zijn collega's rampen van verschillende soorten getriageerd, maar in de afgelopen zes tot acht maanden hebben ze kansen getriageerd. Sandler voegde daaraan toe dat de geboden kansen uitdagend zijn; "het is niet zo dat mensen vragen: 'wil je dit bedrag of dat bedrag?'".

De kansen waar hij over spreekt gaan niet echt over geld, aldus Kühn, maar bieden manieren "voor activisten om dingen gedaan te krijgen en mensen te betrekken". In de afgelopen zes maanden heeft de SFC succesvol contact gelegd met "een hele gemeenschap van liefhebbers" die slechts een oppervlakkige bekendheid hadden met FOSS, over een multitude aan vrijheidsgerichte onderwerpen: "vrije software, vrije cultuur, vrije creatie". Dat is opwindend, maar hij was te snel gegaan omdat dat is waar het verhaal eindigt, dus wilde hij teruggaan naar het begin.

Achtergrond

Enige tijd geleden werd 3D-printen uitgevonden, iets wat hij van een afstandje volgde; een brand in een breadboard tijdens zijn studententijd overtuigde hem ervan dat hij een software-only persoon moest worden. Hij is een fan van de 3D-printcultuur en geniet van de presentaties die daaruit voortkomen, maar hij doet zelf niet mee. Als onderdeel van het onderzoek naar de licentieschending hebben hij en Gingerich een spoedcursus gevolgd in de geschiedenis van 3D-printen, hoewel Gingerich al veel voorkennis had.

Kühn vertelde over wat hij had geleerd, waaronder dat het veld van hobby-3D-printen begon als een curiositeit. Mensen die een 3D-printer wilden, moesten er zelf een bouwen, aangezien er geen kant-en-klare apparaten op de markt waren. Sommigen van hen die de eerste printers bouwden, richtten later bedrijven op die nu 3D-printers verkopen, wat een sleutelelement is in de ontwikkeling van de gemeenschap. Net als Linux begon 3D-printen als een hobby en bleef het "een hobby voor een voldoende lange periode, zodat de hobbycultuur niet onmiddellijk kon worden uitgeroeid door durfkapitalisten".

Het "prachtige" aan 3D-printen is dat de mensen die de software ontwikkelden om de apparaten aan te sturen, keken naar de vrije-softwaregemeenschap en "twee keer nadachten" voordat ze licenties kozen voor hun code. Een belangrijk onderdeel van de tooling die nodig is om deze apparaten te gebruiken, is een programma dat een "slicer" wordt genoemd. Een slicer zet een 3D-model — sommige slicers helpen ook bij het bouwen van deze modellen — om in dunne 2D-plakjes die kunnen worden vertaald naar de taal die de printerhardware begrijpt. Hij vergelijkt die taal met assemblertaal; dat is een versimpeling, maar het helpt hem om een conceptueel kader te vormen.

Alessandro Ranellucci, een langdurige liefhebber van vrije software, creëerde een slicer die hij "Slic3r" noemde. Kühn zei dat zijn enige kritiek op Ranellucci de keuze van de naam was, waardoor het in een presentatie moeilijk is om onderscheid te maken tussen het programma en het algemene type programma; Kühn gebruikte daarom "slicer with three" om ze te onderscheiden.

De twee spraken via een videochat en Ranellucci vertelde dat hij de AGPLv3 had gekozen voor Slic3r om de chaos met Bambu Lab te proberen te voorkomen: "Ik had dit allemaal voorzien, omdat mijn grootste zorg was dat iemand 'Slic3r als een service' zou aanbieden".

Hoewel er 3D-printers zijn die andere slicers gebruiken, is het volgens Kühn moeilijk om er een te vinden die niet het best werkt met een fork van Slic3r. Er zijn ongeveer 18 actieve forks, maar de bekendste is PrusaSlicer. Deze ontstond omdat een vriend van Ranellucci, Josef Prusa, 3D-printen niet alleen als een zakelijke kans zag, maar als "een zakelijke kans voor vrije software". Prusa bouwde een bedrijf op basis van het leveren van printerplannen, vrije software, vrije firmware, enzovoort; dat bedrijf was een tijd lang de dominante speler op de markt.

Tegelijkertijd ontstond er een parallelle markt in 3D-printers voor productie. Dit waren printers die een hele kamer in beslag namen en honderdduizenden dollars kostten. Ondertussen werden de hobbyprinters die tussen de $500 en $3000 kostten "echt, echt, echt goed", vooral in het hogere segment van dat prijsbereik.

De komst van Bambu Lab

Dit was de staat van de markt in 2019 en vóór de COVID-pandemie van 2020. Tijdens COVID namen veel mensen nieuwe hobby's op, waaronder 3D-printen; dit trok een Chinees bedrijf, Bambu Lab, naar de markt. Kühn zei dat er geruchten zijn dat het bedrijf banden heeft met de Chinese overheid, hoewel dat niet is bevestigd. Het bedrijf besloot vanaf nul te beginnen en 3D-printers te maken; tegen 2025 controleerde het bedrijf 38-48% (afhankelijk van het analyserapport) van de markt voor printers in de prijsklasse van $500-3000. Deels komt dit omdat de markt voor kamerbrede industriële printers afneemt en klanten hebben gerealiseerd dat deze kunnen worden vervangen door vloten van veel goedkopere, betere en betrouwbaardere printers van bedrijven zoals Bambu Lab. Het bedrijf heeft zich op die markt gericht, samen met de hobbyistmarkt, wat de reden is voor hun succes.

Bambu Lab had natuurlijk een slicer nodig, dus begon het met het leveren van een aangepaste PrusaSlicer (onder de naam Bambu Studio), die het kon verkrijgen via de AGPLv3, maar zonder broncode te leveren of een aanbod te doen om deze te verstrekken. Dat ging door tot 2022 of 2023, aldus Kühn, totdat de druk van de 3D-printgemeenschap Bambu Lab effectief dwong om een source release te doen. Zoals bijna altijd het geval is bij een eerste release, was dit niet de daadwerkelijke corresponderende broncode.

"Je moet geamuseerd zijn door de vindingrijkheid van copyleft-schenders", zei Kühn; ze vertrouwen vaak op mechanismen waar een echte rechter niet om geeft. In dit geval zou Bambu Studio een verzoek tonen om "nog wat extra spullen" te downloaden, met de klassieke keuzes "Ja" of "Vraag me later". Gebruikers ontdekken uiteindelijk dat sommige functionaliteit in de slicer niet werkt totdat ze op "Ja" klikken. De extra's die worden gedownload zijn twee .so-bestanden gebouwd uit C++ broncode. Deze shared-library-bestanden worden dynamisch in de slicer geladen — wat duidelijk te zien is aan de dlopen() aanroepen in de broncode die is vrijgegeven.

Kühn zei dat Bambu Studio en al zijn componenten zouden worden beschouwd als een gecombineerd werk onder de reguliere GPLv3, maar het bedrijf heeft een netwerkgebaseerd component dat ook botst met de beperkingen in de AGPLv3. Het dynamisch geladen deel van de slicer is een dunne laag die via het netwerk communiceert met een uitgebreide 3D-applicatie die draait op servers van Bambu Lab; het geeft een "sleutel" door, wat simpelweg een specifieke User-Agent-string is, die toegang geeft tot de extra functionaliteit op de servers. Het bedrijf claimt dat de User-Agent, die voor alle clients hetzelfde is, een DMCA anti-omzeilingsmechanisme is.

Maar, zei hij, dat is precies wat de AGPLv3 bedoeld heeft om te voorkomen: "Je kunt niet een deel van je Affero-GPL-applicatie op je webserver plaatsen en dit propriëtair houden". Een 3D-printgebruiker uit Polen, Paweł Jarczak, deed reverse-engineering op de User-Agent-string en de netwerkcode, wat resulteerde in een DMCA takedown-melding van Bambu Lab. "GitHub heeft daar uiteraard gehoor aan gegeven, omdat Microsoft." Jarczak onderhoudt de code nog steeds in zijn slicer (OrcaSlicer), die wordt gespiegeld in een SFC-repository als onderdeel van hun baltobu-project, dat erop gericht is de AGPLv3-schendingen van Bambu Lab te omzeilen.

Gingerich merkte op dat Bambu Lab niet alleen de AGPLv3 schendt, maar ook de GPLv2 door geen broncode te leveren voor een op Buildroot gebaseerde Linux (en andere copyleft-componenten) die worden gebruikt in de firmware van sommige 3D-printermodellen. Hij downloadde het firmware-image van 300MB van de website van Bambu Lab, maar kon de broncode of een aanbod om deze te verstrekken niet vinden.

Hij zei dat Bambu Lab voortkomt uit een in China opgebouwde cultuur die is geïnspireerd door Silicon Valley, inclusief grote investeringen door durfkapitaal. Bambu Lab heeft diepe zakken, waardoor het zijn concurrenten op verschillende manieren kon inhalen, zijn producten uitgebreid kon vermarkten via sociale media en controle kon uitoefenen over de boodschap over zijn producten op forums zoals Reddit. Het bedrijf nam enkele van dezelfde shortcuts als Silicon Valley-bedrijven door "onderweg copyleft-licenties te schenden".

Gingerich denkt dat deze situatie "een zeer goede kans" biedt om "de controle terug te nemen waar we recht op hebben door de licenties die zij hebben gekozen om te gebruiken". Bambu Lab had hun investering kunnen besteden aan het "opnieuw implementeren van zaken vanaf nul", maar koos daar niet voor; er is een grote hoeveelheid hoogwaardige vrije en open-source software beschikbaar die "veel tijd kost om te repliceren".

Bambu Lab heeft effectief de veelvoorkomende "klaag maar bij de rechter"-benadering gehanteerd voor deze schendingen, wat zeker een optie is, zei Gingerich. Maar verschillende manieren om dit soort problemen op te lossen hebben verschillende tijdlijnen; de gemeenschap betrekken bij reverse-engineering en het vervangen van de propriëtaire delen zal waarschijnlijk veel minder tijd kosten dan een rechtszaak. Kühn merkte op dat bedrijven die de licentie schenden nooit daadwerkelijk zeggen "klaag ons maar aan", maar simpelweg stoppen met reageren.

Participatie

Sandler zei dat een van de redenen waarom deze schendingen zo interessant zijn, is dat ze meer nieuwe mensen naar de FOSS-gemeenschap hebben getrokken dan welk ander project waar de SFC aan heeft gewerkt in de afgelopen jaren. Mensen die nooit echt van copyleft of FOSS hadden gehoord, zijn er nu enthousiast over; ze "realiseren zich nu dat deze licenties rechten verlenen en dat we er iets mee kunnen doen". Normaal gesproken, wanneer de SFC over dit soort kwesties spreekt, is dat tegen de mensen in de kamer of tegen hen die de video-opname van de sessie bekijken, wat "een kleine groep mensen is en we worstelen om uit te leggen wat het potentieel is". Maar de 3D-printgemeenschap heeft de kans gegrepen; "meerdere YouTubers plaatsten diepgaande uitleg" en reageerders op Reddit en elders waren "zo enthousiast en zeiden 'wauw, dit is wat deze licenties betekenen, we zouden ze meer moeten gebruiken!'".

Daarna bleven er meer dan tien minuten over voor vragen uit het publiek, waarvan de eerste was: "wat zou Bambu ertoe bewegen de AGPL te volgen?". Gingerich zei dat er verschillende benaderingen zijn, waaronder rechtszaken zoals die van de SFC tegen Vizio (nu eigendom van Walmart); aangezien copyleft-licenties ook contracten zijn, is die rechtszaak gebaseerd op contractrecht. Er is een contract tussen Vizio/Walmart en de softwareontwikkelaars die de GPLv2- en LGPLv2.1-code schreven die in televisies werd gebruikt; de SFC (en iedereen die een Vizio TV koopt) zijn "derde-partij begunstigden" van dat contract en de SFC procedeert om de rechten te krijgen die daarvoor vereist zijn.

Het afdwingen van contracten op deze manier is standaardpraktijk, zei Kühn, maar voor zover zij weten is dit niet gebruikt voor de GPL-familie van contracten. De meer traditionele route naar handhaving is procederen als copyright-houder in de code, wat de SFC in het verleden heeft gedaan. Er zijn andere mechanismen, waaronder het gebruik van diverse handelsakkoorden met hun "intellectuele eigendomsclausules" als instrument. Hoewel intellectuele-eigendomsregels onsmakelijk kunnen zijn, is dat in lijn met de oorspronkelijke intentie van copyleft: "een regel als die pakken, omdraaien en gebruiken om softwarevrijheid te verdedigen".

In combinatie met het werk aan 3D-printen organiseerde de SFC een inzamelingsactie die uiteindelijk het ambitieuze doel van $250.000 ruimschoots overtrof, zei Kühn; het was "een doel waarvan we dachten dat we het waarschijnlijk nooit zouden halen". Sandler zei: "we kozen een getal waarvan we dachten dat we er daadwerkelijk iets significants mee konden bereiken", ook al was er een grote kans dat het niet gehaald zou worden. "We vlogen er straks voorbij en de meeste van onze donaties waren piepkleine donaties", wat opwindend was. Kühn merkte op dat de SFC nu in staat is om een fulltime procesadvocaat aan te nemen; hij moedigde de aanwezigen aan om ervoor te zorgen dat dit nieuws verspreid wordt.

Veel mensen denken dat een GPL-licentie "magisch stof" is, zei Sandler; dat door de licentie te kiezen, mensen hem automatisch zullen volgen en het probleem is opgelost. Dat is overduidelijk niet het geval, wat duidelijk werd door het nadrukkelijke schudden van de hoofden door de aanwezenden. "Als niemand iemand verantwoordelijk houdt, als niemand zegt 'wacht eens even, je doet dit niet echt', dan zal niemand het ooit doen."

Er zijn meerdere manieren om handhaving na te streven, wat creativiteit vereist, zei ze. De SFC probeert "de verschillende manieren te demonstreren waarop je bedrijven kunt bewegen om het juiste te doen". Ze pleit ervoor dat iedereen vraagt om de volledige en corresponderende broncode voor alle apparaten die ze kopen; dit zal aantonen dat er consumentenvraag is naar die rechten. Een ontevreden YouTube-video of thread op Reddit als de broncode niet wordt vrijgegeven, is volgens haar ook een vorm van handhaving.

Een andere vraag ging over de vraag of procederen een effectief instrument voor handhaving is. Gingerich merkte op dat een source release als gevolg van een handhavingsactie tegen Linksys de eerste commit was voor het OpenWrt-project. Dit leidt tot projecten die "ons helpen de controle over onze apparaten terug te krijgen, zodat ze doen wat wij willen, en niet wat de bedrijven die ze verkopen willen".

Daarnaast bedanken de bedrijfsjuristen van bedrijven Sandler regelmatig voor de rechtszaken, omdat dit hun werk een stuk makkelijker maakt, zei ze. Als er geen consequenties zijn voor het schenden van de licentie, hebben bedrijfsjuristen het moeilijk om naleving af te dwingen. De zakelijke kant van het bedrijf wil weten wat de kosten zijn voor het schenden van de licentie, "zonder rechtszaken is daar geen antwoord op".

De laatste vraag ging over het aanpakken van de kernoorzaak van licentieschendingen. Kühn zei dat het oplossen van wereldwijde maatschappelijke corruptie een enorme opgave is; hetzelfde geldt voor het repareren van het kapitalisme, voegde Sandler toe. Het onderliggende probleem is een machtsongelijkheid, zei Gingerich, iets waar FOSS en de bredere right-to-repair-bewegingen tegen strijden. Sandler sloot af door te zeggen dat het doel van deze bewegingen is om de kernoorzaak aan te pakken door een betere wereld te creëren, met verbeteringen in producten, technologie en wetgeving; dat vereist actieve betrokkenheid en het helpen van niet-technische mensen om zich ook in deze kwesties te verdiepen. Dat lijkt overigens ook een vrij enorme opgave.