- Threlte adalah framework open-source yang menempatkan model komponen reaktif Svelte di atas Three.js untuk membuat aplikasi 3D interaktif di web dengan cepat
- Objek Three.js disusun dengan komponen deklaratif seperti
<T.Mesh>, sementara langganan event dan perubahan state ditangani melalui lifecycle Svelte - Menyediakan Rapier physics engine, tool animasi Theatre.js,
@threlte/gltf, dan@threlte/extrassebagai tool bawaan, sehingga mengurangi pekerjaan awal saat menyusun aplikasi 3D - Perilaku yang belum cukup hanya dengan komponen
<T>dapat diperluas lewat Plugins yang type-safe untuk menambahkan props dan event kustom - Bagi developer di ekosistem Svelte yang mencari library THREE deklaratif dan tool pembuatan aplikasi WebGL, dokumentasi dan kemudahan penggunaannya dinilai sebagai keunggulan
Menyusun scene Three.js dengan cara Svelte
- Threlte adalah framework 3D untuk web yang dibuat di atas Svelte dan Three.js
- Berfokus pada pembangunan aplikasi 3D interaktif dengan cepat menggunakan komponen deklaratif dan reaktif
- Dengan memanfaatkan lifecycle komponen Svelte, pekerjaan berikut dapat ditangani
- Berlangganan event
- Menangani perubahan state
- Menghubungkan perilaku berbasis komponen
- Kode contoh menempatkan geometry dan material di dalam
<T.Mesh>, lalu menetapkan props dan event sepertiscale,position.x, danonclicksecara langsung - Penyusunan scene pertama dapat dilihat di Make Your First Scene
Tool yang disertakan dan cara ekstensi
- Threlte mengusung konfigurasi “batteries included” dan menyertakan tool yang dibutuhkan untuk membuat aplikasi 3D
- Rapier: physics engine
- Theatre.js: library animasi dengan toolset desain motion profesional
@threlte/gltf: tool untuk mengonversi file GLTF menjadi komponen Threlte@threlte/extras: kumpulan komponen dan utilitas yang dibutuhkan untuk memulai
- Contoh Rapier menggabungkan
RigidBody,AutoColliders, dan<T.Mesh>untuk menyusun collider berbentuk bola dan mesh - Contoh
@threlte/extrasmemuat model/models/flower.glbdengan komponenFloatdanGLTF, lalu menetapkan shadow, posisi, dan skala - Cara menggunakan
@threlte/extrasdapat dilihat di Documentation - Plugins adalah cara ekstensi untuk menambahkan props kustom dan event kustom ke
<T>secara type-safe- Plugin contoh mendaftarkan prop
lookAtdenganinjectPlugin, lalu memanggilargs.ref.lookAt(args.props.lookAt)di dalam$effect - Penggunaan lanjutan dirangkum di dokumentasi Plugins
- Plugin contoh mendaftarkan prop
- Dokumentasi awal dan tautan komunitas juga tersedia
1 komentar
Opini Hacker News
Pada intinya ada dua hal yang sedang kami lakukan. Salah satunya adalah dukungan Svelte 5. Threlte banyak mengutak-atik internal komponen, misalnya untuk membuat penanganan event lebih efisien atau menerapkan transisi Svelte pada komponen, bukan elemen DOM, jadi pekerjaannya sedikit lebih banyak dibanding library Svelte biasa. Banyak dari hal-hal ini sudah dibangun langsung ke Svelte 5, dan sisanya, seperti transisi, harus kami kesampingkan untuk sementara
Yang satu lagi adalah Threlte Studio. Saya belum yakin cara terbaik menjelaskannya, tapi bisa dibilang ini editor yang memungkinkan Anda memodifikasi kode secara visual. Ia bisa diperluas sehingga dapat disesuaikan dengan alur kerja sendiri, dan saya penasaran sejauh mana ini bisa berkembang. Kalau tertarik, ikuti Discord http://chat.threlte.xyz atau X https://twitter.com/threlte
Svelte terasa sangat intuitif, jadi saya secara alami berpikir bahwa lingkungan 3D juga bisa dikelola secara efisien dengannya, dan itulah yang membuat saya mencari “Svelte + three.js”
Sebagai orang yang pernah memakai PlayCanvas dan Babylon.js, saya sangat menantikan pengembangan Threlte Studio. Saya suka DREI karena bisa membuka semuanya seperti direktori, tetapi saya langsung teringat pada “alat studio” yang sudah familier. Saya penasaran dengan perkiraan jadwal Threlte Studio
Yang paling saya suka adalah contoh galeri gambar. Saya pernah memodifikasinya supaya saat gambar diklik, pengguna masuk ke ruangan lain, yaitu galeri lain
https://github.com/pmndrs/drei adalah kumpulan contoh dan helper
Yang paling berkesan bagi saya adalah contoh yang memakai model GLTF, tekstur video di atas teks, refleksi, dan sebagainya; versi standalone-nya ada di https://bfplr.csb.app/
Yang lebih mengesankan lagi adalah sandbox yang menunjukkan bahwa kodenya tidak terlalu banyak: https://codesandbox.io/p/sandbox/ground-reflections-and-vide...
Membangun lapisan di atas three.js membutuhkan banyak pekerjaan dan saya juga mengalami beberapa hal yang cukup bikin pusing, tetapi potensinya tetap besar. Menggunakan three.js benar-benar mengubah cara saya memandang pengembangan situs web, dan bagi pengguna Svelte ini jelas layak dilihat
Technical Outline-nya, terutama penjelasan fisika mobil yang disederhanakan, cukup informatif. Pada dasarnya ini adalah klon Trackmania yang bahkan memiliki editor track, dan terlihat sebagai contoh yang memanfaatkan keunggulan Svelte/Threlte semaksimal mungkin
Saya penasaran apakah orang-orang benar-benar menginginkan 3D deklaratif. X3D/VRML sudah ada lebih dari 25 tahun dan A-Frame juga sudah 8 tahun, tetapi keduanya tidak pernah benar-benar populer; beberapa format lain juga sempat muncul lalu menghilang. Sebaliknya, three.js dan 3D imperatif/prosedural secara umum berjalan baik, dan saya penasaran mengapa demikian
Optimalisasinya belum terlalu bagus dan semua modelnya adalah model gratis dari Sketchfab. Karena ini lingkungan game 3D, punya PC modern akan membantu
Menurut saya banyak UI bisa mendapat manfaat dari pemanfaatan 3D