Ratty: Satır İçi 3D Grafikleri Destekleyen Terminal Emülatörü
(ratty-term.org)- Ratty, satır içi 3D grafikleri destekleyen GPU ile render edilen bir terminal emülatörüdür
- Dönen fare imleci içerir
- Sitede blog yazısını okuyabilirsiniz
- Sitede Ratty indirme sayfasına gidebilirsiniz
- Sitede kaynağı görüntüle bağlantısına gidebilirsiniz
2 yorum
Hacker News yorumları
Bazıları burada VR kullanımından bahsediyordu; ben de geçmişte yazılım geliştirme için sığ bir 3D arayüzü biraz kurcalamıştım
Gün boyu kullanıldığında VAC kaynaklı göz yorgunluğunu azaltmak için, dizüstü ekranının birkaç santimetre içinde kalan sığ bir derinliği vardı; odanın içinde kollarını savurarak etkileşime girmektense, 3D içinde renk ve katman ekleyerek çizim yapmak gibi hissettiriyordu
3D; sallanma tabanlı 3D, web kamerasıyla kafa/göz takibi üzerinden oluşturulan perspektif, shutter gözlük stereosu, XR HMD gibi yöntemlerle mümkün. Sallanma yöntemi en kolayı ama sevimli ve dikkat dağıtıcı; perspektif yaklaşımı ise daha ince ve daha az rahatsız edici
Bir uygulamanın stereo çifti, “sol/sağ göz için iki pencere sunmak” ya da “sol ve sağ görünümü sırayla gösterip etiketleme/senkronizasyon/polling yapmak” şeklinde olabilir; bunların önemli bir kısmı pencere sistemi/yöneticisi/masaüstü desteği gerektirir. Electron ve X’i üst üste kullanmak bu konuda oldukça büyük bir kaldıraç sağladı
Metni 3D’ye itmek, renklendirmeden daha eğlenceli ve dağınık bir görünümü kabullenirseniz derinlikle ayrılmış yardımcı bilgi katmanları da eklenebilir. Emacs’te karakter başına derinlik olsa, LispM’de bile olmayan bir şey elde edilmiş olurdu
Yine de kod metni gibi doğası gereği 3D olmayan şeylerin potansiyelini keşfederken, UX prototiplemesini ön plan/arka plan renkleri, yazı tipi, Unicode ve animasyonla yapmak çok daha kolay; tarayıcıdaysanız üst üste binen div’ler ve saydam 2D/3D canvas da yeterli
Her karakter 3D’ye yerleştirilmiş bir quad ve instance rendering ile çiziliyor; bu yüzden on milyonlarcasını işleyebiliyor. Her karakter ayrı ayrı adreslenip değiştirilebiliyor; sanki farklı poligonlarmış gibi
Bunu tüm bir GitHub deposunu tek seferde render etmek için kullanıyorum; hem yerel Apple sürümü hem de web sürümü var. Web sürümünde bir IDE düzeninin temel yapı taşları mevcut; fikirlerinizi ve görüşlerinizi duymak isterim
https://ivanlugo.dev/ide
UNIX, REPL deneyimi açısından hâlâ Xerox iş istasyonlarını ya da tipik bir Lisp makinesini yakalamaya çalışıyor gibi görünüyor
1981’de bile satır içi grafik vardı
https://youtu.be/o4-YnLpLgtk?t=376
Hâlâ izlemeyenler için: https://www.youtube.com/watch?v=yJDv-zdhzMY
Bunu beğendim. Terminalin yalnızca metni desteklemek zorunda olması için bir sebep yok
Veri bilimi not defterleri, terminalin evrilebileceği yönlerden birini gösteriyor ve bu alanda çok ilginç şeyler oluyor. Kitty muhtemelen burada en agresif yenilikçi [1]
Yalnız ortada bütünlüklü bir vizyon var mı emin değilim
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
[1] https://github.com/joouha/euporie
pyvistakullanarak Kitty grafikleri üzerinden rastgele 3D şekilleri doğrudan terminalde render etmeyi başardımDevasa bir hack ve performans elde etmenin shm kullanmak dışında bir yolu yoktu
https://git.theresno.cloud/panki/kglobe
Benim ideal bilişim geleceği olarak hayal ettiğim “haiku+macOS mashup”ını bile aşabilir
Genelde dosya yöneticisini tıklayarak kullanmaktansa dosya sistemine terminalden göz atmayı tercih ediyorum; dizindeki 3D modelleri (STL/STEP, 3D baskı) terminal tabanlı render ile gösteren ızgara biçimli bir
lsgerçekten çok faydalı olurduModelleri önizleyip döndürerek inceleyebilmek ekstra puan kazandırır
Bunun nerede işe yarayacağını pek bilmiyorum ama görsel efekt hoştu ve sitenin brütalist tasarımını da sevdim. Bana güzel eski günleri hatırlattı
Bu bayağı iyi görünüyor, değil mi?
Bir sorum var. Render kabiliyeti açısından 2D’yi de iyi işlemesi gerekir gibi görünüyor; yoksa ben mi yanlış anladım? Terminalde yüksek kaliteli 2D görüntü ya da rasterizasyon elde etmeye yönelik mevcut çözümler genelde pek iyi değildi. Bunun başka çözümlerden daha iyi olup olamayacağını ya da bir yerde temel bir sınıra çarpıp çarpmadığını merak ediyorum
Ayrıca GPU hızlandırma varsa ssh üzerinde bunun nasıl çalıştığını da merak ediyorum
Terminal yavaş yavaş tam özellikli bir web tarayıcısına dönüşüyor
Dürüst olmak gerekirse henüz bilmiyorum ama yakında kendim denemeyi düşünüyorum :D
https://github.com/fathyb/carbonyl
https://hyper.is/
Terry’nin huzur içinde yatmasını dilerim. Asla unutulmasın
Ek olarak, bu projeye bakınca onun ruhu yaşamaya devam ediyor gibi geliyor :D
Bunu görünce compiz çıktığında herkesin “pencerem bir küpün üstünde” ya da “sallanan pencerelere ihtiyacım var” dediği günleri hatırladım
O yüzden ben de tam o tipe uygun şekilde bunu hemen kurdum
Tüm compiz animasyon efektleriyle Windows ve Ubuntu arasında geçiş yapmak sihir gibi hissettiriyordu
Bağlantısı verilen blog yazısı sayesinde yeni önerilen glif protokolünü [1] öğrenmiş oldum ve çok ilginç buldum
Yaklaşık 6 ay önce tam da böyle bir şeyin eksikliğinden yakınmıştım [2]
[1] https://rapha.land/introducing-glyph-protocol-for-terminals/
[2] https://news.ycombinator.com/item?id=45805072
https://github.com/tikimcfee/glyph3d-js
Kitty grafik protokolüyle bu zaten bir ölçüde mümkün. Kitty’de 3D grafik render etme demosu yapmıştım [1]
Aslında eksik olan önemli parça vsync ve sanırım ratty’de de yok
Render işlemi hizalanmazsa, uygulama framebuffer’a yazarken terminal emülatörü onu okuyabilir ve bu da görsel artefaktlara yol açabilir
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20
Lobste.rs görüşleri
Landing page'den LLM kokusu geliyordu; blog yazısına baktım, gerçekten de öyleymiş
Kullanımın kendisini etiketleyeceksek projelerin %90'ına etiket koymamız gerekir ve sohbet de ortaya çıkan işin kendisinden uzaklaşır. Bir kişinin 3D fare gösterebilen bir terminal emülatörü hackleyip yapması hakkındaki bir başlığın etik tartışmasına dönmesini istemem
Hızlı bir wow etkisi için biraz 3D ekledim, ama bence amaç dikkatlice temelleri yeniden düşünmek olmalı. Deneyim başarısız olsa bile, insanlar için insani bir bakış açısıyla ürün yaptığımı söylemekten gurur duyuyorum
Tabii bunu sadece eğlencesine yapıyorlarsa, bunda başlı başına bir sorun yok
Kaç kez okusam da hâlâ aşırı kafam karışıyor
Bir yanım sixel ya da kitty gördüğümde olduğu gibi sürekli “neden?” diye düşünüyor. Temelde metin odaklı bir arayüze grafik katmanı eklemek havalı ama pratik görünmüyor. Elbette curses ya da slang için de aynı itiraz yapılabilir
Öte yandan, bir 3D render protokolünü/ekranını bir şekilde Emacs'in içine sokmanın mümkün olup olmayacağını merak ediyorum. Ne yapacağım hakkında hiçbir fikrim yok ama bu projedeki gibi gerçekten çok havalı olabilir
Eskiden insanlar eğlenceli olduğu için program yapardı. Hatırlamıyor musun?
Bir akşamüstümü harcayıp Haskell CAD framework'ümün Ratty'nin okuyabileceği şekilde nesneler çıktılamasını sağladım
Harcadığım zamana göre oldukça umut verici göründü, ama “nesne yerleştirme” komutunun biraz daha yapılandırılabilir olmasını isterdim. REPL çıktısı içinde yer açma işini ve nesne ölçeklendirmeyi de kendi başına halletmesini beklerdim
Ayrıca Ratty'nin assets klasörü dışındaki dosyaları yükleyememesi biraz can sıkıcı. Scroll da biraz bozuk gibiydi; nesnelerin kaybolması için erken sayılacak anlarda sık sık kaybolduğunu gördüm. Yine de buna benim yanlış yaptığım bir şey sebep olmuş olabilir