- Threlte वेब पर interactive 3D apps तेज़ी से बनाने के लिए Svelte के reactive component model को Three.js के ऊपर रखने वाला एक open source framework है
<T.Mesh>जैसे declarative components से Three.js objects बनाए जाते हैं, और Svelte lifecycle के ज़रिए event subscription और state changes को संभाला जाता है- डिफ़ॉल्ट टूलसेट में Rapier physics engine, Theatre.js animation tool,
@threlte/gltf,@threlte/extrasशामिल हैं, जिससे शुरुआती 3D app setup का काम कम हो जाता है <T>component से पूरी न होने वाली behavior को type-safe Plugins के ज़रिए custom props और events जोड़कर extend किया जा सकता है- Svelte ecosystem में declarative THREE library और WebGL app development tools खोजने वाले developers के लिए इसकी documentation और usability को बड़ी ताकत माना जाता है
Svelte तरीके से Three.js scene बनाना
- Threlte, Svelte और Three.js पर बना वेब के लिए 3D framework है
- इसका फोकस declarative और reactive components के साथ interactive 3D apps जल्दी बनाना है
- Svelte components के lifecycle का उपयोग करके ये काम किए जा सकते हैं
- event subscription
- state changes को संभालना
- component-based behavior को जोड़ना
- उदाहरण कोड में
<T.Mesh>के अंदर geometry और material रखे जाते हैं, औरscale,position.x,onclickजैसे props और events सीधे दिए जाते हैं - पहला scene कैसे बनता है, यह Make Your First Scene में देखा जा सकता है
साथ मिलने वाले tools और extension का तरीका
- Threlte “batteries included” approach के साथ 3D app development के लिए ज़रूरी tools भी साथ देता है
- Rapier: physics engine
- Theatre.js: professional motion design toolset वाली animation library
@threlte/gltf: GLTF files को Threlte components में बदलने वाला tool@threlte/extras: शुरुआत के लिए ज़रूरी components और utilities का collection
- Rapier के उदाहरण में
RigidBody,AutoColliders,<T.Mesh>को मिलाकर sphere-shaped collider और mesh बनाया जाता है @threlte/extrasके उदाहरण मेंFloatऔरGLTFcomponents से/models/flower.glbmodel लोड किया जाता है, और shadow, position, scale सेट किए जाते हैं@threlte/extrasका उपयोग Documentation में देखा जा सकता है- Plugins
<T>में custom props और custom events को type-safe तरीके से जोड़ने का extension mechanism हैं- उदाहरण plugin,
injectPluginसेlookAtprop register करता है और$effectके अंदरargs.ref.lookAt(args.props.lookAt)कॉल करता है - advanced usage Plugins दस्तावेज़ में व्यवस्थित है
- उदाहरण plugin,
- शुरुआत के दस्तावेज़ और community links भी दिए गए हैं
1 टिप्पणियां
Hacker News की राय
मूल रूप से दो चीज़ों पर काम चल रहा है। एक है Svelte 5 सपोर्ट। Threlte ने event handling को ज़्यादा efficient बनाने या DOM elements के बजाय components पर Svelte transitions लागू करने के लिए component internals में काफी बदलाव किए हैं, इसलिए सामान्य Svelte library की तुलना में इसमें थोड़ा ज़्यादा काम है। इनमें से काफी चीज़ें Svelte 5 में built-in हो गई हैं, और transitions जैसी बाकी चीज़ों को फिलहाल छोड़ना पड़ेगा
दूसरी चीज़ है Threlte Studio। अभी समझ नहीं आ रहा कि इसे सबसे अच्छे तरीके से कैसे समझाऊँ, लेकिन इसे ऐसा editor कह सकते हैं जो code को visually edit करने देता है। यह extensible है, इसलिए इसे अपने workflow के हिसाब से ढाला जा सकता है, और मैं देखना चाहता हूँ कि यह कहाँ तक जा सकता है। अगर रुचि हो तो Discord http://chat.threlte.xyz या X https://twitter.com/threlte पर follow कर सकते हैं
Svelte सच में बहुत intuitive लगा, इसलिए स्वाभाविक रूप से लगा कि 3D environment को भी efficiently manage किया जा सकता होगा, और इसी वजह से “Svelte + three.js” search किया
PlayCanvas और Babylon.js इस्तेमाल कर चुका हूँ, इसलिए Threlte Studio development को लेकर बहुत उत्साहित हूँ। DREI में यह बात अच्छी लगती है कि वह सब कुछ directory की तरह फैला देता है, लेकिन मुझे परिचित “studio tool” याद आ गया। Threlte Studio की expected timeline जानना चाहूँगा
मुझे खास तौर पर image gallery example पसंद है। मैंने इसे बदलकर ऐसा बनाया कि image पर click करने से किसी दूसरे room, यानी दूसरी gallery में प्रवेश हो
https://github.com/pmndrs/drei examples और helpers का collection है
सबसे ज़्यादा impress करने वाला example वह था जिसमें GLTF models, text पर video texture, reflections आदि इस्तेमाल होते हैं, और standalone version https://bfplr.csb.app/ पर है
उससे भी ज़्यादा impressive यह sandbox है, जो दिखाता है कि code बहुत ज़्यादा नहीं है: https://codesandbox.io/p/sandbox/ground-reflections-and-vide...
three.js के ऊपर layer बनाना काफी काम मांगता है और कुछ काफी सिरदर्द वाली चीज़ें भी झेलनी पड़ीं, फिर भी potential बहुत बड़ा है। three.js इस्तेमाल करते हुए website development को देखने का मेरा नज़रिया पूरी तरह बदल गया, और Svelte इस्तेमाल करने वालों के लिए यह ज़रूर देखने लायक है
Technical Outline, खासकर simplified car physics की explanation, काफी उपयोगी है। असल में यह track editor के साथ Trackmania clone है, और Svelte/Threlte की खूबियों का पूरा इस्तेमाल करने वाला example लगता है
मुझे आश्चर्य है कि लोग सच में declarative 3D चाहते भी हैं या नहीं। X3D/VRML को 25 साल से ज़्यादा हो गए और A-Frame को भी 8 साल हो गए, लेकिन दोनों बहुत mainstream नहीं हुए, और कई दूसरे formats भी आए और चले गए। दूसरी ओर three.js और imperative/procedural 3D कुल मिलाकर अच्छा चल रहा है—क्यों, यह जानना दिलचस्प है
Optimization बहुत अच्छी नहीं है और सारे models Sketchfab के free models हैं। यह 3D game environment है, इसलिए modern PC हो तो मदद मिलेगी
मुझे लगता है कि कई UIs को 3D के इस्तेमाल से फायदा हो सकता है