Adobe में अनुभव और Renderlet का जन्म
- Adobe में Photoshop और Acrobat जैसे बड़े applications के infrastructure पर काम किया।
- desktop, web, mobile और cloud पर एक मज़बूत codebase को चलाना एक बड़ी परेशानी थी।
- Lightroom और Photoshop को web पर चलाने के लिए JavaScript, Google का PNaCl, asm.js, और अंततः WebAssembly तक पहुँचने वाली जटिल प्रक्रिया से गुज़रना पड़ा।
- GPU architecture पर फिर से विचार करना पड़ा, single-threaded build को चलाना पड़ा, और web components के इर्द-गिर्द UI को फिर से बनाना पड़ा।
- web build अब अच्छी तरह काम करता है, लेकिन यहाँ तक पहुँचने में 10 साल की लंबी यात्रा लगी।
WebAssembly की संभावनाएँ
- graphics stack portability में सबसे बड़ा bottleneck पैदा करने वाला हिस्सा है।
- एक दिन एहसास हुआ कि WebAssembly(Wasm) इस समस्या का समाधान दे सकता है।
- Wasm हर जगह चल सकता है, किसी भी चीज़ में embed किया जा सकता है, और real-time graphics के लिए पर्याप्त performance देता है।
- इसी वजह से नौकरी छोड़कर शुरुआत से WASM-आधारित, portable और embeddable graphics framework बनाने की यात्रा शुरू की।
- इसका लक्ष्य application developers को अपनी पसंद के graphics आसानी से बनाने देना है, साथ ही high-level सुविधा और GPU सहित high-performance applications के लिए ज़रूरी low-level capabilities दोनों देना है।
Renderlet का परिचय
- Renderlet नाम embeddable पहलू को उभारने के लिए रखा गया।
- अपने graphics modules बनाकर उन्हें जोड़ा जा सकता है, और किसी भी चीज़ के साथ, किसी भी चीज़ के भीतर आसानी से interoperable बनाया जा सकता है।
- जैसे Unity ने developers के लिए cross-platform games बनाना आसान किया, वैसे ही हर तरह के visual applications के लिए वही काम करने का विचार है।
विकास प्रक्रिया और feedback का अनुरोध
- YC में solo founder के रूप में शामिल हुआ, लेकिन पिछले 6 महीनों का ज़्यादातर समय इस project को बनाने पर केंद्रित रहा।
- अभी open alpha release के लिए तैयार नहीं है, लेकिन जल्द तैयार होगा, और इसके बारे में लिखना, दिखाना और feedback पाना चाहता है।
- यह एक application developer के रूप में लंबे समय से देखा गया सपना है, और दूसरे लोग इसके बारे में क्या सोचते हैं यह जानना चाहता है।
Rive और Renderlet का संयोजन
- जब Rive ने अपना 2D vector engine open source किया और चर्चा में आया, तब इसमें रुचि जगी।
- Rive का renderer, SVG जैसी high-level 2D API पर बना है, जबकि Renderlet का Wander renderer GPU के ऊपर low-level 3D API को expose करता है।
- Renderlet, GPU backend का उपयोग करके Rive Renderer library चला सकता है, जिससे हर 3D app को 2D vector backend मिल सकता है।
- इसका वास्तविक implementation काम करते हुए Vimeo पर देखा जा सकता है, और GitHub पर तकनीकी विवरण में गहराई से जाया जा सकता है।
GN⁺ की राय
- Renderlet मौजूदा जटिल graphics application portability समस्याओं को हल करने के लिए एक नवोन्मेषी approach पेश करता है। यह developers के लिए अलग-अलग platforms पर एक समान user experience देने वाला शक्तिशाली tool बन सकता है।
- Renderlet के developer को Adobe के अनुभव के आधार पर बाज़ार की वास्तविक ज़रूरतों और तकनीकी सीमाओं की अच्छी समझ है, जो project की सफलता की संभावना बढ़ाती है।
- हालांकि Renderlet अभी शुरुआती चरण में है और open alpha release नहीं हुआ है, इसलिए वास्तविक environment में इसकी performance और stability अभी सत्यापित नहीं हुई है।
- इस technology को सफलतापूर्वक अपनाने के लिए व्यापक community support और developers की सक्रिय भागीदारी आवश्यक होगी। एक open source project के रूप में developers के योगदान और feedback का project की growth पर बड़ा असर पड़ेगा।
- Unity, Unreal Engine, Godot जैसे दूसरे projects या frameworks भी समान capabilities देते हैं, लेकिन Renderlet Wasm-आधारित हल्केपन और portability पर अधिक केंद्रित एक अलग approach अपनाता है।
1 टिप्पणियां
Hacker News की राय
PAL चरण को छोड़कर सीधे SetupRuntime पर जाना बेहतर है। गैर-ग्राफ़िक्स डेवलपर्स इन बातों से अच्छी तरह परिचित नहीं होते, और API में अनावश्यक अतिरिक्त चरण जोड़ना उचित नहीं है। PAL कहीं और उपयोग नहीं होता, इसलिए WebGPU का उपयोग करना बेहतर होगा। (IPal, IRuntime का सदस्य होना चाहिए और WebGPU context में हटाए जाने के लिए तैयार है)।
यह प्रोजेक्ट cross-platform GUI बनाने के लिए एक शानदार widget kit और interaction model के लिए एक बेहतरीन canvas बन सकता है। C/C++ backend और WASM target के साथ लगभग हर भाषा में FFI बनाया जा सकता है.
टेक्स्ट और फ़ॉन्ट support के लिए क्या योजना है, यह जानने की उत्सुकता है। कुछ graphics engines टेक्स्ट को हर मनचाहे तरीके से support नहीं करते। सवाल यह है कि क्या OTF या WOFF2 फ़ाइलें लोड करके मनचाही string प्रदर्शित की जा सकेगी.
इस प्रोजेक्ट में बहुत रुचि है। runtime, event loop, FFI, window pointer ownership आदि को लेकर कुछ सवाल हैं। audio plugins और VST में दिलचस्पी है, और event loop तथा window management पर कुछ सीमाएँ हैं। JUCE व्यवहार में default समाधान है, लेकिन पुराना और असुविधाजनक है.
यह प्रोजेक्ट वास्तव में बहुत शानदार है, और पिछले कुछ वर्षों से मैं इसी तरह की चीज़ का सपना देख रहा था। WASM में graphics/audio/multimedia computation के लिए portable unit के रूप में बहुत संभावनाएँ हैं.
Godot Engine में WASM चलाने के लिए काम किया जा रहा है। यह जानना दिलचस्प होगा कि Safari में Shared Array Buffer accessibility की समस्या और online games के लिए महत्वपूर्ण ad network access की समस्या को कैसे पार किया गया। single-threaded बनाम regular build की समस्या भी बताई गई.
3D graphics/WASM क्षेत्र में और प्रोजेक्ट्स देखना अच्छा लग रहा है। YC में प्रवेश पाने के लिए कोई सुझाव है क्या? Unreal Engine 5 को WebGPU और WebAssembly पर port करने का काम कई वर्षों से चल रहा है। इसमें multithreaded renderer और asset streaming system है, जिससे users को पूरा game/app पहले से डाउनलोड करने की ज़रूरत नहीं होती। साथ ही पूरे application को एक बार में memory में लोड करने की भी आवश्यकता नहीं होती। डेवलपर्स के लिए projects को online deploy करने हेतु पूरा hosting platform और backend भी बनाया गया है.
wasm I/O में दिया गया प्रस्तुतीकरण शानदार था, और यह देखकर खुशी हुई कि इस काम को ध्यान मिल रहा है.
पूछा गया कि क्या Flutter के प्रमुख डेवलपर Ian Hickson का लेख पढ़ा है। उसमें WASM का उपयोग करके पूरी तरह cross-platform UI framework रखने की अवधारणा समझाई गई है, और Flutter भी इसी अवधारणा का उपयोग करता है.
CAD kernel के लिए ऐप में एकीकृत किए जा सकने वाले manifold की ज़ोरदार सिफारिश की गई.