Ratty: emulator terminal yang mendukung grafis 3D inline
(ratty-term.org)- Ratty adalah emulator terminal dengan rendering GPU yang mendukung grafis 3D inline
- Menyertakan kursor tikus yang berputar
- Di situsnya, Anda dapat membaca artikel blog
- Di situsnya, Anda dapat menuju ke unduh Ratty
- Di situsnya, Anda dapat menuju ke lihat source code
2 komentar
Komentar Hacker News
Ada yang membahas penggunaan VR di sini, dan dulu saya pernah sedikit bereksperimen dengan UI 3D dangkal untuk pengembangan perangkat lunak
Kedalamannya dangkal, hanya beberapa cm ke dalam layar laptop agar kelelahan mata VAC tetap rendah meski dipakai seharian, dan rasanya lebih seperti menggambar dengan menambahkan warna dan layer di ruang 3D daripada mengayunkan tangan di dalam ruangan
3D bisa dilakukan dengan 3D wobble, perspektif yang dibuat dari pelacakan kepala/mata via webcam, stereo dengan shutter glasses, XR HMD, dan sebagainya. Metode wobble paling mudah, tetapi terasa lucu dan mengganggu, sedangkan perspektif lebih halus dan tidak terlalu mengusik
Pasangan stereo aplikasi bisa berupa “menyediakan dua jendela mata kiri/kanan” atau “menampilkan tampilan kiri/kanan secara bergantian lalu memberi label/sinkronisasi/polling”, dan banyak di antaranya membutuhkan dukungan sistem/manajer jendela/desktop. Saya mendapat leverage yang cukup besar dari pendekatan menumpuk Electron dan X
Mendorong teks ke 3D lebih menyenangkan daripada sekadar pewarnaan, dan kalau mau menerima tampilan yang ramai, kita juga bisa menambahkan layer informasi sekunder yang dipisahkan berdasarkan kedalaman. Kalau Emacs punya kedalaman per karakter, itu berarti ada sesuatu yang bahkan LispM pun tidak punya
Namun saat mengeksplorasi kemungkinan untuk hal-hal yang pada dasarnya bukan 3D seperti teks kode, jauh lebih mudah membuat prototipe UX dengan warna latar/depan, font, Unicode, dan animasi, dan di browser cukup pakai div bertumpuk serta canvas 2D/3D transparan
Semua karakter adalah quad yang ditempatkan di 3D dan dirender dengan instance rendering, jadi bisa menangani puluhan juta atau lebih. Setiap karakter bisa dialamati dan diubah secara individual seperti poligon lain
Saya memakainya untuk merender seluruh repositori GitHub sekaligus, dan ada dua versi: versi Apple native dan versi web. Versi web-nya sudah memiliki elemen dasar dari konfigurasi IDE, dan saya ingin mendengar insight atau pendapat
https://ivanlugo.dev/ide
UNIX tampaknya masih berusaha mengejar workstation Xerox atau mesin Lisp pada pengalaman REPL
Inline graphics sudah ada sejak 1981
https://youtu.be/o4-YnLpLgtk?t=376
Buat yang belum pernah melihatnya: https://www.youtube.com/watch?v=yJDv-zdhzMY
Saya suka ini. Tidak ada alasan terminal harus hanya mendukung teks
Notebook data science menunjukkan salah satu arah evolusi terminal, dan banyak hal menarik sedang terjadi di area ini. Kitty mungkin inovator yang paling agresif di sini [1]
Hanya saja saya tidak yakin ada visi menyeluruhnya
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
[1] https://github.com/joouha/euporie
pyvistaberhasil saya buat memakai grafik Kitty untuk merender bentuk 3D arbitrer langsung di terminalIni hack yang sangat besar, dan satu-satunya cara mendapatkan performa adalah dengan memakai shm
https://git.theresno.cloud/panki/kglobe
Mungkin bahkan melampaui “mashup haiku+macOS” yang selama ini saya bayangkan sebagai masa depan komputasi ideal
Biasanya saya lebih suka menjelajahi sistem berkas dari terminal daripada mengklik file manager, jadi
lsberbentuk grid yang menampilkan model 3D (STL/STEP, cetak 3D) di dalam direktori lewat rendering berbasis terminal akan sangat bergunaNilai tambah kalau modelnya bisa dipratinjau dan diputar
Saya tidak terlalu tahu akan dipakai untuk apa, tetapi efek visualnya menyenangkan dan saya juga suka desain brutalis di situs webnya. Mengingatkan saya pada kenangan indah masa lalu
Ini kelihatan cukup bagus, ya?
Saya punya pertanyaan. Dari kemampuan rendering-nya, sepertinya 2D juga bisa ditangani dengan baik; apakah saya salah lihat? Solusi yang ada saat ini untuk mendapatkan gambar 2D berkualitas tinggi atau rasterisasi di terminal umumnya kurang memuaskan. Saya penasaran apakah ini bisa lebih baik daripada solusi lain, atau justru akan menabrak batas fundamental di suatu titik
Saya juga penasaran bagaimana ini bekerja lewat ssh jika memakai akselerasi GPU
Terminal perlahan menjadi browser web full-featured
Sejujurnya saya sendiri belum tahu, tetapi saya berniat mencobanya sendiri sebentar lagi :D
https://github.com/fathyb/carbonyl
https://hyper.is/
Turut berduka untuk Terry. Semoga tidak pernah dilupakan
Tambahan pula, melihat proyek ini rasanya semangatnya masih terus hidup :D
Ini mengingatkan saya pada masa ketika compiz baru muncul dan semua orang berkata “jendela saya ada di atas kubus” atau “saya butuh jendela bergoyang”
Jadi tentu saja, sesuai karakter orang-orang seperti itu, saya langsung memasangnya
Berpindah antara Windows dan Ubuntu dengan segala efek animasi compiz terasa seperti sihir
Dari tulisan blog yang ditautkan, saya mengetahui usulan baru glyph protocol [1] dan merasa itu sangat menarik
Sekitar 6 bulan lalu saya juga sempat menyesalkan tidak adanya hal seperti ini [2]
[1] https://rapha.land/introducing-glyph-protocol-for-terminals/
[2] https://news.ycombinator.com/item?id=45805072
https://github.com/tikimcfee/glyph3d-js
Dengan Kitty graphics protocol, ini sebenarnya sudah agak mungkin. Saya pernah membuat demo rendering grafik 3D di Kitty [1]
Bagian penting yang sebenarnya masih kurang adalah vsync, dan ratty tampaknya juga belum memilikinya
Jika rendering tidak tersinkronisasi, emulator terminal bisa membaca framebuffer saat aplikasi sedang menulis ke sana, sehingga menimbulkan artefak visual
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20
Opini di Lobste.rs
Dari landing page-nya terasa bau LLM, jadi saya cek postingan blog-nya dan ternyata benar
Kalau sekadar penggunaan AI yang diberi tag, maka 90% proyek harus diberi tag, dan pembicaraannya pun akan melenceng dari hasil akhirnya sendiri. Saya tidak ingin thread tentang seseorang yang nge-hack dan membuat terminal emulator yang menampilkan tikus 3D justru berubah jadi perdebatan etika.
Saya memang menambahkan sedikit 3D demi efek wow yang cepat, tetapi menurut saya tujuannya seharusnya adalah memikirkan ulang fondasinya dengan hati-hati. Bahkan kalau eksperimen saya gagal, saya tetap bangga karena telah membuat produk dengan sudut pandang yang manusiawi untuk manusia
Tentu saja, kalau mereka melakukannya murni untuk bersenang-senang, itu sendiri tidak masalah
Sudah saya baca berkali-kali, tapi tetap sangat membingungkan
Di satu sisi, seperti saat melihat sixel atau kitty, saya terus berpikir “kenapa?”. Menambahkan grafik ke antarmuka yang pada dasarnya berorientasi teks memang keren, tetapi tampaknya tidak praktis. Tentu saja, keberatan yang sama juga bisa diajukan pada curses maupun slang
Di sisi lain, saya jadi penasaran apakah protokol/tampilan rendering 3D ini bisa dimasukkan ke dalam Emacs dengan cara apa pun. Saya sama sekali tidak tahu akan dipakai untuk apa, tetapi rasanya bakal sangat keren, seperti proyek ini
Dulu orang membuat program karena itu menyenangkan. Masa tidak ingat?
Saya menghabiskan setengah malam untuk membuat framework CAD Haskell saya mengeluarkan objek dalam format yang bisa dibaca Ratty
Untuk waktu yang saya keluarkan, hasilnya tampak cukup menjanjikan, tetapi saya berharap perintah “penempatan objek” bisa sedikit lebih bisa dikonfigurasi. Saya ingin ia juga menangani sendiri pembuatan ruang di dalam output REPL dan penyesuaian ukuran objek
Selain itu, agak mengecewakan bahwa Ratty tidak bisa memuat file di luar folder assets. Scroll juga tampaknya agak rusak; saya sering melihat objek menghilang lebih cepat dari yang seharusnya. Meski begitu, bisa saja itu terjadi karena saya melakukan sesuatu yang salah