Después de varios años de desarrollo complicado por la pandemia, las cadenas de suministro interrumpidas y la guerra en Europa, hemos presentado nuestra nueva Original Prusa MK4 hoy. Comenzamos a enviar las primeras unidades de la XL hace dos semanas. Hay una próximo PrusaSlicer 2.6 con soportes orgánico y muchas otras funciones excelentes. Nuestro equipo de firmware está finalizando la implementación personalizada del input shaping (supresión de vibraciones) para la MK4 y XL. Además, está la nueva MMU3, con firmware completamente reescrito y toneladas de mejoras.

Lo anterior y muchas otras cosas que hemos estado haciendo en Prusa Research durante más de diez años solo fueron posibles gracias a la gran comunidad de impresión 3D y la filosofía de código abierto. Sin embargo, las nuevas impresoras y los lanzamientos de software me han hecho pensar nuevamente sobre el estado actual del código abierto en el mundo de la impresión 3D. Qué tan sostenible es, cómo lo manejan nuestros competidores, qué aporta a la comunidad y qué nos preocupa a nosotros como desarrolladores. Considera este artículo como una llamada a la discusión, como un puntapié inicial que (con suerte) abrirá una nueva perspectiva sobre la conexión entre las licencias de código abierto, el hardware de consumo y el desarrollo de software.

Antes de empezar, quiero dejar algunas cosas claras para evitar malentendidos:

  • Mantenemos nuestras raíces en código abierto y continuaremos haciéndolo.
  • Nuestras impresoras 3D de escritorio siempre serán de código abierto. Tenemos la intención de seguir publicando las piezas de plástico, junto con códigos fuente de firmware.
  • Estaremos abiertos a los fabricantes de componentes, accesorios, complementos y actualizaciones no oficiales de terceros.
  • PrusaSlicer siempre será de código abierto.
  • Nuestra inversión en PrusaSlicer y el desarrollo de firmware continuará al mismo nivel o superior.

Durante la última década, siempre he estado en contra de las empresas que se han alejado de la comunidad de código abierto con el paso del tiempo y, finalmente, se han convertido en código cerrado. No quiero que Prusa Research vaya en la misma dirección. Las patentes de las grandes empresas han limitado el mundo de la impresión 3D desde el principio, y proyectos como RepRap haberlo ayudado a liberarse de ese control. Cuando expiraron varias patentes importantes de Stratasys en 2014, el desarrollo de código abierto finalmente pudo despegar a toda velocidad.

 

Cualquiera que desarrolle algo relacionado con la impresión 3D hoy se beneficiará de más de diez años de desarrollo continuo de código abierto. Cientos de personas y decenas de empresas contribuyeron a llevar la industria a donde está hoy. La idea de que puedes desarrollar una impresora 3D con su firmware y software desde cero en uno o dos años es una ilusión. Siempre nos apoyaremos en los hombros de personas como Adrian Bowyer (fundador de RepRap), Alessandro Ranellucci (autor original de Slic3r), David Braam (autor original de Cura), Scott Lahteine (mantenedor de Marlin), y muchos otros. Como mínimo, todos merecen reconocimiento público y agradecimiento cada vez que alguien usa su trabajo. Y eso nos lleva a lo que me preocupa.

El movimiento de código abierto se basa en el hecho de que todos los involucrados siguen las mismas reglas. No se puede hacer sin respeto mutuo, comprensión y un objetivo compartido. Cuando alguien de repente tuerce las reglas para su propio beneficio o las viola abiertamente, la comunidad deja en claro que no lo tolerará. En el pasado, hemos visto muchas protestas y boicots que han obligado incluso a las grandes empresas a repensar cómo tratan el patrimonio de código abierto. Pero en los últimos años siento que la situación está cambiando. Cada vez más empresas están rompiendo y doblando las reglas, y la comunidad no es tan resistente a sus acciones como lo era antes. Después de una tormenta menor en Internet, la situación se calma y el código permanece cerrado (o solo se abre una parte), y después de unas semanas, todos se olvidan.

Mientras tanto, he estado recibiendo información sobre empresas que han comenzado a solicitar patentes locales basadas en desarrollo de código abierto y marcas registradas (te sorprendería saber cuántas de ellas tienen «Prusa» en su nombre). Sobre empresas de propiedad parcial de empresas e instituciones estatales y que utilizan código fuente abierto en sus sistemas cerrados, violando así las licencias.

Por supuesto, no todas las infracciones de código abierto se pueden probar fácilmente, pero si observas el historial, encontrarás que no sería la primera vez que sucede algo similar. Un ejemplo para todos son los paneles solares – las invenciones y procesos originales fueron copiados gradualmente por empresas chinas. Después de eso, con la ayuda de subsidios estatales y exenciones de impuestos, sacaron del mercado a toda la competencia en unos pocos años. Hoy en día, prácticamente no hay ninguna posibilidad de comprar un panel solar que no sea de fabricación china.

Espero que esto no suceda en el mundo de la impresión 3D. Pero la verdad es que podríamos ser la última gran empresa de impresión 3D que se adhiera por completo a los principios de código abierto. Y realmente me gustaría que hubiera más de los nuestros.

Hemos pasado años en el desarrollo de código abierto, ya sea contribuyendo a los repositorios originales o más tarde en nuestro propio hardware, firmware y forks de slicer. Nuestro equipo interno de PrusaSlicer tiene 13 personas, y el equipo de firmware tiene 21 – eso significa cientos de miles de horas de trabajo solo en los últimos cinco años.

Desde que mi hermano y yo comenzamos con la impresión 3D, hemos (junto con nuestros colegas más tarde) ideado una amplia gama de contribuciones que puede encontrar en casi todas las impresoras 3D domésticas actuales (de código abierto o no). Ya sea una base calefactable de PCB, láminas de impresión removibles, PEI de recubrimiento en polvo aplicado directamente al metal, nivelación automática de la base mediante malla usando una sonda inductiva, el modo pánico, protección avanzada contra problemas térmicas, calibración automática de la inclinación de los ejs, homing sin sensores y mucho más – Nunca consideré patentar ninguna de estas contribuciones y no compartirlas con la comunidad de impresión 3D.

 

Una de nuestras primeras bases calefactables

Y eso es solo cosas relacionadas con el firmware y las impresoras. Además de eso, PrusaSlicer ha sufrido tantos cambios que el Slic3r original de Alessandro es prácticamente invisible debajo de todas las nuevas incorporaciones (y aún así seguimos destacando la herencia de Slic3r en la barra principal y en otros lugares). Por cierto, echa un vistazo a la documentation of PrusaSlicer on our website or our nueva cuenta de Twitter, ¡donde encontrarás consejos y trucos útiles!

PrusaSliceres un gran ejemplo de lo que puede traer el código abierto, pero también demuestra algunos de los riesgos que no he mencionado todavía. Un ejemplo positivo es la incorporación de increíbles contribuciones de la comunidad, como el relleno cúbico adaptativo o los soportes de árboles, que verás pronto en PrusaSlicer 2.6.0 en forma de soportes orgánicos. La colaboración con el equipo detrás de Cura también es excelente. Tenemos el generador perimetral Arachne y el relleno Lightning de Cura, y les devolvimos el favor, por ejemplo, con un relleno monótonico o el sistema de gestión de plataformas.

Desafortunadamente, hay un inconveniente. Hacerse cargo de funciones entre laminadores de la competencia solo tiene sentido si las contribuciones de las partes individuales están al menos parcialmente equilibradas y si los autores se citan correctamente. Y este no es siempre el caso.

Y luego están las contribuciones de la comunidad. Debido a la popularidad de PrusaSlicer, muchas personas contribuyen con sus pull requests en GitHub, esperando que su código se añada automáticamente a la rama principal. Sin embargo, PrusaSlicer se ha convertido en un programa muy complejo a lo largo de los años, y contribuciones similares suelen ser el «éxito para un día» – resuelven un problema que molesta a un usuario en particular. Aún así, al mismo tiempo, rompen otras características. Nuestros desarrolladores deben optimizar, modificar o incluso reescribir por completo la mayor parte del código externo para mantener todo estable y confiable. Constantemente refactorizamos gran parte del código original en PrusaSlicer, y mantener todo estable no es fácil. Si desea saber más sobre este tema, consulte la presentación de Vojta Bubnik (desarrollador principal de PrusaSlicer), which he preparado para nuestro evento especial en el CERN – la presentación comienza en el 00:25).

No quiero que parezca que me estoy quejando de la participación de la comunidad en el desarrollo – al contrario, estamos agradecidos por todas las contribuciones externas. Pero el desarrollo de la comunidad no es la razón principal por la que ofrecemos nuestros productos como código abierto.

Nuestro principal objetivo siempre ha sido hacer que nuestras impresoras sean fáciles de mantener y modificar, para que las personas y las empresas puedan jugar y experimentar con el software y el hardware. Estamos encantados de ver las increíbles modificaciones y complementos de terceros para nuestras impresoras 3D. (un buen ejemplo está aquí)! Y una de las mejores cosas para ver, y una de nuestras mayores motivaciones, es cuando los padres construyen un kit de montaje de impresora 3D con sus hijos, aprendiendo así poco a poco cómo funciona la máquina.

Una gran actualización para nuestras impresoras preparada por el equipo del Instituto ZHAW de Sistemas Mecatrónicos

Pero volviendo al tema – ¿qué es lo que no nos gusta del estado actual del desarrollo de código abierto en el campo de la impresión 3D? Para que quede claro, lo resumiré en algunos puntos clave:

  • La licencia estándar GNU GPL bajo el cual están disponibles nuestras impresoras y software es muy vaga, está escrito de manera complicada y está abierto a varias interpretaciones. Fue desarrollado por académicos con fines académicos. La comunidad de impresión 3D ha comenzado a utilizarla para hardware para el que no es del todo adecuada. Una violación de esta licencia se puede hacer cumplir bajo la ley de derechos de autor, pero estas regulaciones difieren en cada país y las disputas potenciales pueden ser largas y costosas.
  • En el mercado actual de impresoras 3D y el software que las rodea, muchas empresas interpretan las licencias de código abierto a su manera. A menudo no publican el código fuente o solo publican partes de él, y solo después de que la comunidad los presiona.
  • Hay clones 1:1 de hardware o software en el mercado que no aportan nada a la comunidad.
  • Cuando se toma el control del código, los encabezados de derechos de autor y los registros del historial de desarrollo a menudo se eliminan de los repositorios, borrando cualquier rastro de los autores del código original.
  • Los fabricantes de dispositivos o software que usan código abierto no dan suficiente crédito a los autores originales. En sus pantallas de bienvenida, archivos Léame o sitios web, a menudo no encontrará información sobre los orígenes del producto.
  • Las contribuciones a los repositorios compartidos no son iguales – en otras palabras, algunas partes toman mejoras de otras pero no contribuyen ellas mismas.
  • Se sospecha que se están creando nuevos proyectos comerciales basados en proyectos de código abierto. Sin embargo, su código es cerrado y solicitan patentes locales que eventualmente pueden expandirse globalmente.

Todos estos puntos implican también posibles acciones correctivas. La pregunta es, ¿cómo lograrlos sin dejar de ser de código abierto y apoyando a la comunidad? Hace algún tiempo, comencé a pensar en una nueva licencia para abordar estos problemas con mayor claridad. Así que reuní algunos puntos de trabajo que me gustaría ver en dicha licencia:

  • Si está utilizando algún código o modelo para llevar software o hardware al mercado, la autoría del código original debe indicarse claramente en el producto o en el software. Además, está prohibido eliminar la información de derechos de autor de los encabezados y el historial de los repositorios.
  • No se permite la producción de clones 1:1 casi exactos con fines comerciales.
  • La licencia para la fabricación de piezas de repuesto es válida para fines de servicio, modificación o educativos.
  • Las actualizaciones y modificaciones adicionales basadas en piezas originales están permitidas y son bienvenidas.
  • Las piezas que pueden considerarse consumibles (p. ej., termistores, bloques calefactores, ventiladores, planchas de impresión, etc.) pueden fabricarse y venderse comercialmente después de la verificación por parte del licenciante en función de la presentación de muestras.
  • Si el fabricante etiqueta un producto como obsoleto (o no se puede comprar o pedir durante más de 3 meses), la cláusula no comercial se rescinde automáticamente si ya no se producen piezas idénticas en el sucesor del producto o no se pueden comprar por separado.
  • Si el licenciante cesa su actividad, se extingue la cláusula no comercial.

En este momento, con el lanzamiento de la MK4, pondremos a disposición modelos de todas las piezas de plástico y fuentes de firmware (ya están disponibles desde el lanzamiento del primer firmware de la XL). Sin embargo, debido al estado actual del mercado de componentes electrónicos y también a los problemas descritos anteriormente, no nos apresuraremos a publicar los planes de la electrónica todavía. Nos gustaría lanzarlos ya bajo la nueva licencia.

Básicamente, lo que me gustaría hacer con este artículo es iniciar una discusión. Quiero escuchar lo que piensas sobre esto, y me gustaría incluir figuras destacadas de los campos de código abierto, personalidades de Youtube, periodistas y otras empresas de hardware de código abierto e impresión 3D en las conversaciones. Si todos podemos estar de acuerdo en que la situación actual no es ideal, trabajemos juntos para mejorarla.