9 puntos por GN⁺ 2026-03-18 | 2 comentarios | Compartir por WhatsApp
  • El algoritmo Slug, que realiza renderizado de fuentes basado en curvas de Bézier en la GPU, renderiza directamente datos vectoriales sin texturas y se utiliza en diversas industrias como videojuegos, CAD, edición de video y equipos médicos
  • Al renunciar a la exclusividad a partir del 17/3/2026, la patente quedó completamente liberada al dominio público, por lo que ahora cualquiera puede usarla libremente
  • En las versiones recientes, se mejoraron el rendimiento y la eficiencia del código con cambios como la eliminación de la optimización band split y del supersampling, además de la simplificación del método de renderizado de emojis
  • El cambio más importante es la función de dilatación dinámica (dynamic dilation), que calcula automáticamente la expansión óptima de bordes según el tamaño del glifo y el punto de vista
  • Gracias al código shader de referencia en GitHub publicado bajo licencia MIT, cualquiera puede implementarlo libremente

Desarrollo y expansión del algoritmo Slug

  • El algoritmo Slug fue desarrollado en otoño de 2016 y presentado en un artículo de JCGT en 2017
    • Después, Slug Library 1.0 se comercializó y se otorgaron licencias a empresas importantes como Activision, Blizzard, Ubisoft y Adobe
    • Se ha utilizado en campos diversos como videojuegos, visualización científica, CAD, edición de video, equipos médicos y planetarios
  • Originalmente fue desarrollado para el renderizado de texto de alta calidad en C4 Engine, y después también se aplicó al editor de fórmulas Radical Pie
    • Permite representar a alta resolución elementos gráficos vectoriales como fórmulas, paréntesis y flechas

Evolución del método de renderizado

  • Slug renderiza directamente en la GPU datos de curvas de Bézier sin texturas precalculadas
    • Es robusto frente a errores de punto flotante y mantiene curvas suaves y esquinas nítidas
  • La optimización band split mejoró la velocidad en glifos grandes, pero fue eliminada porque en fuentes pequeñas degradaba el rendimiento y aumentaba la complejidad
    • Como resultado, se simplificó el pixel shader y el tamaño de la textura de datos de banda se redujo a la mitad
  • El adaptive supersampling se usaba para reducir el aliasing en fuentes pequeñas, pero como su efecto era limitado y fue reemplazado por una nueva técnica de dilatación, se eliminó
  • El renderizado de emojis multicolor cambió a un método que trata cada capa como un glifo independiente, logrando mejor rendimiento y simplificación del código

Dilatación dinámica (Dynamic Dilation)

  • Antes, la expansión del borde del glifo debía especificarse manualmente con una distancia fija
    • En fuentes pequeñas eso provocaba pérdida de borde, y en fuentes grandes generaba desperdicio innecesario de espacio
  • La dilatación dinámica se calcula automáticamente en el vertex shader, determinando la distancia de expansión óptima al renderizar cada glifo
    • Usa la matriz MVP y el tamaño del viewport para expandir el borde en unidades de medio píxel
    • Según cambie el punto de vista, puede aplicarse una distancia de dilatación distinta a cada vértice
  • Matemáticamente, se deriva como una ecuación cuadrática que obtiene una distancia d que satisface la condición de expansión de medio píxel en el espacio del viewport
    • La solución final tiene la forma (d = \frac{s^3t \pm s^2\sqrt{u^2 + v^2}}{u^2 + v^2 - s^2t^2})
    • Se elige el signo positivo para desplazarse hacia afuera
  • Para mantener el tamaño del glifo, también se realiza una corrección de coordenadas en em-space, almacenando una matriz Jacobiana inversa en cada vértice

Liberación de la patente y anuncio público

  • El algoritmo Slug obtuvo en 2019 la patente estadounidense (US10373352B1), pero renunció a su exclusividad hasta 2038 a partir del 17 de marzo de 2026
    • La vigencia restante de la patente fue abandonada oficialmente ante la USPTO mediante la presentación del formulario SB/43 y el pago de la tarifa correspondiente
  • Como resultado, ahora cualquiera puede implementar y usar libremente el algoritmo Slug
    • Se permite tanto para fines comerciales como no comerciales, sin riesgo de infringir derechos de propiedad intelectual
  • Se publicó el repositorio de GitHub (https://github.com/EricLengyel/Slug) como referencia para implementaciones reales
    • Está disponible bajo licencia MIT e incluye un pixel shader mejorado respecto al artículo de JCGT y un vertex shader con dilatación dinámica

Importancia de Slug

  • Slug se ha consolidado como una implementación representativa del renderizado vectorial de fuentes basado en GPU
  • A lo largo de 10 años, ha mejorado rendimiento, simplicidad y calidad
  • Con la liberación de la patente, queda abierta la posibilidad de adopción y expansión libres en toda la industria

2 comentarios

 
dalinaum 2026-03-22

Es una noticia excelente.

 
GN⁺ 2026-03-18
Comentarios en Hacker News
  • Es una noticia realmente genial. Hace tiempo me había maravillado con la elegancia de este algoritmo, pero me daba pena que no pudiera usarse en FOSS por las patentes.
    Ahora que lo dedicaron al dominio público después de cierto tiempo, es algo muy de agradecer. Si algún día termino haciendo un emulador de terminal, me gustaría probar este algoritmo por la belleza estética del código
    • El propio autor explicó que obtuvo la patente del algoritmo Slug en 2019, pero le parecía demasiado mantener la exclusividad hasta 2038. Por eso, a partir de hoy, dedica permanentemente la patente de Slug al dominio público
    • Si las patentes de software fueran válidas solo unos 8 años, me parecería algo apoyable
  • Su proyecto más reciente es RadicalPie.
    Es un editor profesional de ecuaciones para Windows 10/11, usa Slug como motor de renderizado y cuesta 60 dólares. Probablemente lo esté usando para escribir el libro FGED
    • Hace 25 años me habría encantado. Pero hoy en día casi no veo gente haciendo este tipo de trabajo en Windows.
      Aun así, es un excelente reemplazo de MathType, y resulta impresionante que se inserte bien en Word gracias a la integración OLE
  • En un trabajo anterior usé Slug, y de verdad era una biblioteca diseñada como una obra de arte.
    Me parece la cumbre de la ingeniería de software. Gracias al autor por donarlo al dominio público
  • Gracias a Eric. Me da curiosidad qué diferencias habrá al comparar su enfoque con proyectos como Vello
  • Me encanta ver historias donde alguien que creó software complejo y útil recibe una compensación justa.
    Ojalá hubiera más casos así
  • Es una noticia sorprendente. Gracias a Eric.
    Como referencia, la patente Loop-Blinn de Microsoft (para curvas cúbicas) también está por vencer, así que el panorama del renderizado de texto podría cambiar bastante
  • Está buenísimo. Hace tiempo me preguntaba si Ruffle podría implementar algo similar para gráficos vectoriales acelerados por GPU.
    En ese momento usaban un método que aproximaba las curvas con triángulos, pero no sé si eso sigue igual
  • Excelente noticia. Con la velocidad del hardware actual, no hay razón para no renderizar glifos directamente desde curvas Bezier.
    Los antiguos atlas de texturas o el método SDF siempre parecieron soluciones temporales, y al cambiar la escala la calidad se degradaba.
    Ahora que Slug está abierto, ojalá las bibliotecas principales y los motores de juego adopten métodos de renderizado de mayor calidad
  • Hace tiempo trabajé con C4, el motor de juegos del autor, y eso fue hace ya 20 años.
    No sabía que seguía tan activo en este campo
  • Me pregunto si ya lo subieron a ShaderToy 😄