Slug एल्गोरिद्म के 10 साल
(terathon.com)- GPU पर Bézier curve-आधारित font rendering करने वाला Slug एल्गोरिद्म texture के बिना सीधे vector data render करता है, और गेम, CAD, वीडियो एडिटिंग, मेडिकल उपकरण आदि कई उद्योगों में उपयोग होता है
- 2026/3/17 से अनन्य अधिकार छोड़ देने के कारण patent पूरी तरह public domain में जारी कर दिया गया है, इसलिए अब कोई भी इसे स्वतंत्र रूप से उपयोग कर सकता है
- हाल के संस्करणों में band split optimization और supersampling हटाना, emoji rendering विधि को सरल बनाना आदि के जरिए performance और code efficiency में सुधार किया गया है
- सबसे बड़ा बदलाव dynamic dilation फीचर है, जो glyph के आकार और viewpoint के अनुसार अपने-आप optimal boundary expansion की गणना करता है
- GitHub reference shader code को MIT लाइसेंस के तहत जारी किया गया है, जिससे कोई भी इसे स्वतंत्र रूप से implement कर सकता है
Slug एल्गोरिद्म का विकास और प्रसार
- Slug एल्गोरिद्म 2016 की शरद ऋतु में विकसित किया गया और 2017 में JCGT पेपर के रूप में प्रकाशित हुआ
- इसके बाद Slug Library 1.0 को commercial रूप दिया गया और Activision, Blizzard, Ubisoft, Adobe जैसी प्रमुख कंपनियों को लाइसेंस दिया गया
- इसका उपयोग गेम, scientific visualization, CAD, वीडियो एडिटिंग, मेडिकल उपकरण, planetarium आदि कई क्षेत्रों में हुआ
- इसे मूल रूप से C4 Engine में high-quality text rendering के लिए विकसित किया गया था, और बाद में Radical Pie equation editor में भी लागू किया गया
- इससे equations, brackets, arrows जैसे vector graphic elements को high resolution में व्यक्त किया गया
Rendering विधि का विकास
- Slug पहले से precomputed texture के बिना Bézier curve data को GPU पर सीधे render करता है
- यह floating-point error के प्रति भी robust है, और smooth curves तथा sharp corners को बनाए रखता है
- band split optimization से बड़े glyph में speed बढ़ी थी, लेकिन छोटे fonts में performance गिरने और complexity बढ़ने के कारण इसे हटा दिया गया
- इसके परिणामस्वरूप pixel shader सरल हुआ और band data texture size आधा हो गया
- adaptive supersampling का उपयोग छोटे fonts में aliasing कम करने के लिए किया जाता था, लेकिन इसका प्रभाव सीमित था और नई dilation तकनीक से इसे बदलकर हटा दिया गया
- multi-color emoji rendering को बदलकर ऐसी विधि अपनाई गई जिसमें हर layer को स्वतंत्र glyph की तरह process किया जाता है, जिससे performance बढ़ी और code सरल हुआ
Dynamic Dilation
- पहले glyph boundary expansion को fixed distance के रूप में manually specify करना पड़ता था
- छोटे fonts में boundary loss होता था, जबकि बड़े fonts में अनावश्यक space की बर्बादी होती थी
- dynamic dilation की vertex shader में automatic calculation होती है, जिससे हर glyph render के समय optimal expansion distance तय होता है
- MVP matrix और viewport size का उपयोग करके half-pixel unit में boundary expand की जाती है
- viewpoint बदलने पर हर vertex पर अलग dilation distance लागू की जा सकती है
- गणितीय रूप से यह viewport space में half-pixel expansion condition को संतुष्ट करने वाली दूरी d निकालने वाले quadratic equation से निकाला गया है
- अंतिम हल (d = \frac{s^3t \pm s^2\sqrt{u^2 + v^2}}{u^2 + v^2 - s^2t^2}) के रूप में है
- बाहर की दिशा में जाने के लिए positive sign चुना जाता है
- glyph का आकार बनाए रखने के लिए em-space coordinate correction भी की जाती है, और हर vertex में inverse Jacobian matrix स्टोर की जाती है
Patent समाप्ति और सार्वजनिक घोषणा
- Slug एल्गोरिद्म ने 2019 में अमेरिकी patent (US10373352B1) प्राप्त किया था, लेकिन 2038 तक के अनन्य अधिकारों को 17 मार्च 2026 से त्याग दिया गया
- USPTO में SB/43 form जमा करके और fee भुगतान करके patent की शेष अवधि को आधिकारिक रूप से छोड़ा गया
- इसके परिणामस्वरूप अब कोई भी Slug एल्गोरिद्म को स्वतंत्र रूप से implement और उपयोग कर सकता है
- commercial और non-commercial दोनों उद्देश्यों के लिए अनुमति है, और intellectual property infringement की चिंता नहीं है
- वास्तविक implementation reference के लिए GitHub repository(https://github.com/EricLengyel/Slug) सार्वजनिक की गई है
- यह MIT लाइसेंस के तहत उपलब्ध है, और JCGT पेपर से बेहतर pixel shader तथा dynamic dilation सहित vertex shader शामिल करती है
Slug का महत्व
- Slug GPU-आधारित vector font rendering के एक प्रमुख implementation के रूप में स्थापित हो चुका है
- 10 वर्षों के विकास के दौरान इसने performance, simplicity, quality तीनों में सुधार किया है
- patent हटने से अब पूरे उद्योग में स्वतंत्र adoption और विस्तार की संभावना सुनिश्चित हुई है
2 टिप्पणियां
यह वाकई बहुत शानदार खबर है।
Hacker News की राय
अब इसे एक निश्चित अवधि के बाद public domain को समर्पित कर दिया गया है, यह सच में आभार की बात है। अगर कभी मैं terminal emulator बनाऊँ, तो सिर्फ code की सौंदर्यात्मक खूबसूरती की वजह से भी इस algorithm को आज़माना चाहूँगा
यह Windows 10/11 के लिए एक professional equation editor है, जो Slug को rendering engine के रूप में इस्तेमाल करता है और इसकी कीमत 60 डॉलर है। शायद FGED किताब लिखने में भी वही इसका उपयोग कर रहे होंगे
फिर भी यह MathType का एक शानदार alternative है, और OLE integration के कारण Word में अच्छी तरह insert हो जाना प्रभावशाली है
मुझे लगता है यह software engineering का शिखर है। इसे public domain में दान करने के लिए लेखक का धन्यवाद
काश ऐसे उदाहरण और ज़्यादा हों
वैसे Microsoft का Loop-Blinn patent (cubic curves के लिए) भी जल्द expire होने वाला है, इसलिए text rendering की दुनिया में बड़ा बदलाव आ सकता है
उस समय वह curves को triangles से approximate करने का तरीका इस्तेमाल करता था, लेकिन पता नहीं अब भी ऐसा ही है या नहीं
पुराने texture atlas या SDF तरीके हमेशा अस्थायी उपाय जैसे लगे, और scale बदलने पर quality गिर जाती थी
अब जब Slug खुल गया है, उम्मीद है कि प्रमुख libraries और game engines और ज़्यादा high-quality rendering methods अपनाएँगे
मुझे पता ही नहीं था कि वह अब भी इस क्षेत्र में सक्रिय हैं