Dopo diversi anni di sviluppo, complicati dalla pandemia, dall’interruzione delle filiere e dalla guerra in Europa, oggi abbiamo annunciato la nuova Original Prusa MK4. Abbiamo iniziato le spedizioni delle prime unità della XL due settimane fa. È in programma l’arrivo di PrusaSlicer 2.6 con supporti organici e molte altre funzioni eccezionali. Il nostro team firmware sta ultimando l’implementazione su misura dell’input shaping (soppressione delle vibrazioni) per l’MK4 e l’XL. Inoltre, c’è il nuovo MMU3, con un firmware completamente riscritto e tonnellate di miglioramenti.

Tutto questo e molte altre cose che abbiamo fatto in Prusa Research per oltre dieci anni sono state possibili solo grazie alla grande comunità della stampa 3D e alla filosofia open-source. Tuttavia, le nuove stampanti e i nuovi software rilasciati mi hanno fatto riflettere sullo stato attuale dell’open source nel mondo della stampa 3D. Quanto è sostenibile, come si comportano i nostri competitor, cosa porta alla community e cosa ci preoccupa come sviluppatori. Considerate questo articolo come un invito alla discussione, come un punto di partenza che (si spera) aprirà una nuova prospettiva sulla connessione tra licenze open-source, hardware di consumo e sviluppo di software.

Prima di iniziare, vorrei chiarire alcune cose per evitare qualsiasi malinteso:

  • Siamo fedeli alle nostre radici nell’open-source e continueremo a esserlo.
  • Le nostre stampanti 3D desktop saranno sempre open source. Intendiamo continuare a pubblicare le parti in plastica e i codici sorgente del firmware.
  • Rimarremo aperti ai produttori di componenti di terze parti, agli accessori, ai componenti aggiuntivi e agli aggiornamenti non ufficiali.
  • PrusaSlicer sarà sempre open source.
  • I nostri investimenti in PrusaSlicer e nello sviluppo del firmware continueranno allo stesso livello o a un livello superiore.

Nell’ultimo decennio sono sempre stato critico nei confronti delle aziende che, con il passare del tempo, si sono allontanate dalla community open-source, finendo per diventare closed-source. Non voglio che Prusa Research vada nella stessa direzione. I brevetti delle grandi aziende hanno limitato il mondo della stampa 3D fin dall’inizio, e progetti come RepRap hanno contribuito a liberarla da questa morsa. Quando nel 2014 sono scaduti alcuni importanti brevetti di Stratasys, lo sviluppo open-source ha potuto finalmente decollare a pieno ritmo.

 

Chiunque oggi sviluppi qualcosa legato alla stampa 3D beneficia di oltre dieci anni di continuo sviluppo open-source. Centinaia di persone e decine di aziende hanno contribuito a portare il settore al punto in cui si trova oggi. L’idea che si possa sviluppare da zero una stampante 3D con il suo firmware e il suo software in un anno o due è una vera e propria illusione.. Ci reggeremo sempre sulle spalle di persone come Adrian Bowyer (fondatore di RepRap), Alessandro Ranellucci (autore originale di Slic3r), David Braam (autore originale di Cura), Scott Lahteine (manutentore Marlin) , e molti altri. Come minimo, tutti loro meritano un riconoscimento pubblico e un ringraziamento ogni volta che qualcuno utilizza il loro lavoro. E questo ci porta alla questione che mi preoccupa.

Il movimento open-source si basa sul fatto che tutti i soggetti coinvolti giocano secondo le stesse regole. Non si può fare a meno del rispetto reciproco, della comprensione e di un obiettivo condiviso. Quando qualcuno improvvisamente piega le regole a proprio vantaggio o le viola apertamente, la community indica chiaramente che non lo sopporterà. In passato, abbiamo assistito a numerose proteste e boicottaggi che hanno costretto anche le grandi aziende a rivedere il modo in cui trattano il retaggio open-source. Ma negli ultimi anni, avverto che la situazione sta cambiando. Sempre più aziende infrangono e violano le regole e la community non mostra più la stessa resistenza di un tempo nei confronti di tali azioni. Dopo una piccola bufera su Internet, la situazione si calma e il codice rimane chiuso (o viene aperto solo in parte) e, dopo qualche settimana, tutti se ne dimenticano.

Nel frattempo, ho ricevuto informazioni su aziende che hanno iniziato a richiedere brevetti locali partendo dallo sviluppo open-source e dai marchi (sareste sorpresi di sapere quante di queste hanno “Prusa” nel loro nome). Di aziende parzialmente possedute da società e istituzioni statali che utilizzano codice open-source nei loro sistemi chiusi, violando così le licenze.

Naturalmente, non tutte le violazioni dell’open source possono essere dimostrate facilmente, ma se si guarda alla storia, si può notare che non sarebbe la prima volta che accade qualcosa di simile. Un esempio su tutti riguarda i pannelli solari – le invenzioni e i processi originali sono stati gradualmente copiati dalle aziende cinesi. Poi, con l’aiuto di sussidi statali e agevolazioni fiscali, nel giro di pochi anni hanno eliminato dal mercato tutta la concorrenza. Oggi, non c’è praticamente alcuna possibilità di acquistare un pannello solare che non sia di produzione cinese.

Spero che questo non accada nel mondo della stampa 3D. Ma la verità è che potremmo essere l’ultima grande azienda di stampa 3D che aderisce completamente ai principi dell’open-source. E mi piacerebbe davvero che ce ne fossero di più.

Abbiamo dedicato anni allo sviluppo open-source, sia contribuendo ai repository originali che successivamente con i nostri fork di hardware, firmware e slicer. Il nostro team interno per PrusaSlicer conta 13 persone e il team per il firmware 21: si tratta di centinaia di migliaia di ore di lavoro solo negli ultimi cinque anni.

Da quando io e mio fratello abbiamo iniziato a stampare in 3D, abbiamo (insieme ai nostri colleghi in seguito) ideato un’intera serie di contributi che oggi si possono trovare su quasi tutte le stampanti 3D domestiche (open-source o meno). Che si tratti di un piano riscaldato PCB, di piastre di stampa rimovibili, di rivestimento a polvere PEI applicato direttamente al metallo, di livellamento automatico del piano mediante una sonda induttiva, del power panic, della protezione avanzata contro il thermal runaway, della calibrazione automatica della deviazione degli assi, dell’homing senza sensori e di molto altro ancora, non prenderei mai in considerazione l’idea di brevettare uno qualsiasi di questi contributi e di non condividerli con la community della stampa 3D.

 

Uno dei nostri primi piani riscaldati

E questo solo per quanto riguarda il firmware e le stampanti. Inoltre, PrusaSlicer ha subito così tante modifiche che lo Slic3r originale di Alessandro è praticamente scomparso sotto tutte le nuove aggiunte (eppure continuiamo a evidenziare l’eredità dello Slic3r nella barra principale e altrove). A proposito, date un’occhiata alla documentazione di PrusaSlicer sul nostro sito o sul nuovo account Twitter, dove troverete consigli e trucchi utili!

PrusaSlicer è un ottimo esempio di ciò che l’open source può offrire, ma dimostra anche alcuni dei rischi che non ho ancora menzionato. Un esempio positivo è l’incorporazione di incredibili contributi della community, come il riempimento cubico adattivo o i supporti ad albero, che vedrete presto in PrusaSlicer 2.6.0 sotto forma di supporti organici. Anche la collaborazione con il team dietro Cura è ottima. Abbiamo ricevuto da Cura il generatore perimetrale Arachne e il riempimento Lightning, e abbiamo ricambiato il favore con, ad esempio, un riempimento monotonico o il sistema di gestione del piano.

Purtroppo c’è un aspetto negativo. L’acquisizione di funzionalità tra slicer concorrenti ha senso solo se i contributi delle singole parti sono almeno parzialmente bilanciati e se gli autori sono citati correttamente. E questo non è sempre il caso.

E poi ci sono i contributi della community. Data la popolarità di PrusaSlicer, molte persone contribuiscono con le loro pull request su GitHub, aspettandosi che il loro codice venga automaticamente aggiunto al ramo principale. Tuttavia, PrusaSlicer è diventato un programma estremamente complesso nel corso degli anni e contributi simili sono di solito “ad-personam” – risolvono un problema che affligge un particolare utente. Tuttavia, allo stesso tempo, compromettono altre funzionalità. I nostri sviluppatori devono ottimizzare, modificare o addirittura riscrivere completamente la maggior parte del codice esterno per mantenere tutto stabile e affidabile. Riformuliamo costantemente ampie parti del codice originale di PrusaSlicer e mantenere tutto stabile non è facile. Se volete saperne di più su questo argomento, date un’occhiata alla presentazione di Vojta Bubnik (sviluppatore principale di PrusaSlicer), che ha preparato per il nostro evento speciale al CERN – la presentazione inizia a 00:25).

Non vorrei che sembrasse che mi stia lamentando del coinvolgimento della community nello sviluppo, anzi, siamo molto grati per tutti i contributi esterni. Ma lo sviluppo da parte della community non è la ragione principale per cui offriamo i nostri prodotti come open source.

Il nostro obiettivo principale è sempre stato quello di rendere le nostre stampanti facili da mantenere e modificare, in modo che le persone e le aziende possano giocare e sperimentare con il software e l’hardware. Siamo entusiasti di vedere le incredibili modifiche e i componenti aggiuntivi di terze parti per le nostre stampanti 3D (un bell’esempio è qui)! Una delle cose più belle da vedere, e una delle nostre più grandi soddisfazioni, è quando i genitori montano un kit di assemblaggio di una stampante 3D con i loro figli, imparando così gradualmente il funzionamento della macchina.

Aggiornamento per le nostre stampanti preparato dal team dell’Istituto di sistemi meccatronici ZHAW

Ma tornando all’argomento, cosa non ci piace dello stato attuale dello sviluppo open-source nel campo della stampa 3D? Per essere chiari, lo riassumerò in alcuni punti chiave:

  • La licenza standard GNU GPL con cui sono disponibili le nostre stampanti e il nostro software è molto vaga, scritta in modo complicato e aperta a varie interpretazioni. È stata sviluppata da accademici per scopi accademici. La community della stampa 3D ha iniziato a utilizzarla per un hardware per il quale non è del tutto adatta. Una violazione di questa licenza può essere applicata in base alle leggi sul copyright, ma le normative variano da paese a paese e le potenziali controversie possono essere lunghe e costose.
  • Nell’attuale mercato delle stampanti 3D e del software che le circonda, molte aziende interpretano le licenze open-source a modo loro. Spesso non rilasciano il codice sorgente o ne rilasciano solo alcune parti, e solo dopo che la community le mette sotto pressione.
  • Sul mercato sono presenti cloni 1:1 di hardware o software che non apportano nulla alla community.
  • Quando viene utilizzato il codice, le intestazioni dei diritti di autore e i registri della cronologia di sviluppo vengono spesso cancellati dai repository, cancellando ogni traccia degli autori del codice originale.
  • I produttori di dispositivi o software che utilizzano l’open source non danno sufficiente credito agli autori originali. Nelle schermate di benvenuto, nei file readme o nei siti web, spesso non si trovano informazioni sulle origini del prodotto.
  • I contributi ai repository condivisi non hanno lo stesso valore: in altre parole, alcuni soggetti traggono miglioramenti da altri ma non contribuiscono a loro volta.
  • Si sospetta che stiano nascendo nuovi progetti commerciali basati su progetti open-source. Tuttavia, il loro codice è chiuso e depositano brevetti locali che possono eventualmente essere estesi a livello globale.

Tutti questi punti implicano anche possibili azioni correttive. La domanda è: come realizzarle rimanendo open source e supportando la community? Qualche tempo fa, ho iniziato a pensare a una nuova licenza che affrontasse questi problemi in modo più chiaro. Ho quindi messo insieme alcuni punti pratici che mi piacerebbe vedere in una licenza di questo tipo:

  • Se si utilizzano codici o progetti per immettere sul mercato software o hardware, la paternità del codice originale deve essere chiaramente indicata sul prodotto o nel software. Inoltre, è vietato cancellare le informazioni sul copyright dalle intestazioni e dalla cronologia dei repository.
  • Non è consentita la produzione di cloni praticamente identici 1:1 per scopi commerciali.
  • La licenza per la produzione di parti di ricambio è valida per l’assistenza, la modifica o la formazione.
  • Aggiornamenti e modifiche aggiuntive basate su parti originali sono consentiti e ben accetti.
  • Le parti che possono essere considerate materiali di consumo (ad esempio, termistori, blocchi di riscaldamento, ventole, piastre di stampa, ecc.) possono essere prodotte e vendute a livello commerciale dopo la verifica da parte del licenziante sulla base della presentazione di campioni.
  • Se un prodotto è etichettato dal produttore come obsoleto (o non può essere acquistato o ordinato per più di 3 mesi), la clausola non commerciale si estingue automaticamente se parti identiche non sono più prodotte nell’ambito del successore del prodotto o non possono essere acquistate separatamente.
  • Se il licenziante cessa la propria attività, la clausola non commerciale viene meno.

Al momento, con il rilascio di MK4, renderemo disponibili i modelli di tutte le parti in plastica e i sorgenti del firmware (sono già disponibili dal rilascio del primo firmware XL). Tuttavia, a causa dello stato attuale del mercato dei componenti elettronici e dei problemi sopra descritti, non ci affretteremo a rilasciare i progetti dell’elettronica. Vorremmo rilasciarli già con la nuova licenza.

In sostanza, quello che vorrei fare con questo articolo è avviare una discussione. Voglio sentire cosa ne pensate e mi piacerebbe includere nelle discussioni figure di spicco dei settori open source, personalità di Youtube, giornalisti e altre aziende di stampa 3D e hardware open-source. Se siamo tutti d’accordo che la situazione attuale non è ideale, lavoriamo insieme per migliorarla.