6 Yıl Boyunca Ahşap Piksel Ekranı Yapma Hikayesi
(benholmen.com)- Kilopixel, 6 yılda geliştirilen ve herkesin internet üzerinden resim çizebildiği 1000 ahşap piksel tabanlı büyük bir ekrandır
- Bu proje, farklı fiziksel prototip tasarımları, malzeme testleri, piksel biçimi dönüşümleri ve diğer deneme-yanılmalarla olgunlaştırılarak tamamlandı
- CNC makinesi ve Raspberry Pi, web uygulaması, sensörler gibi bileşenler kullanılarak çevrim içi ile çevrim dışını birleştiren özgün bir yapıya sahip
- Kullanıcılar web sitesi üzerinden doğrudan çizim göndererek veya oy vererek katılabilir; gerçek zamanlı yayın ve timelapse video sağlama altyapısı da hazırlanmıştır
- İleride başka kullanıcılara API ile ekran kontrolünü devretme ve farklı kullanım senaryoları geliştirme hedeflenerek, yaratıcı ve açık bir proje olarak sürdürülüyor
Proje Genel Bakış
- Kilopixel, 6 yıldır geliştirilen dünyadaki en verimsiz 1000 piksel ahşap ekrandır
- Herkesin web sitesi (kilopx.com) üzerinden ekrana resim çizebileceği bir etkileşimli sistem olarak tasarlandı
- Proje, web uygulaması, fiziksel kontrolör, CNC işleme, G-kodu üretimi, 3D modelleme ve baskı gibi farklı IT ve maker bileşenlerini bir araya getiren bir çalışmadır
İlk Fikir ve Motivasyon
- Danny Rozin'in alışılmadık ayna eserleri ve eInk tabanlı çok yavaş çalışan bir movie player'dan ilham aldılar
- Günümüzün yüksek çözünürlüklü ekranlarının aksine, piksel güncellemelerinin dakikada sadece 10 kez değişeceği son derece yavaş ve verimsiz bir yöntem seçildi
- 40×25 ızgara ile tam olarak 1.000 piksel gösterildi ve akılda kalıcı bir alan adı olarak kilopx.com ismi seçildi
İlk Prototip (21×3 Piksel) Üretimi
- Başlangıçta ahşap bir gantri kullanıldı, kısa süre sonra doğrudan Openbuilds kitinin alüminyum parçalarına (3D yazıcıya benzer bir yapı) geçildi
- Raspberry Pi, CNC kontrolörü, step motor gibi otomasyon bileşenleriyle temel montaj denenip çalıştırıldı
- Piksel seçimi ve manipülasyonu konusunda bir dizi sınırlama ve teknik sorun tespit edildi
Uygun Piksel Arayışının Zorluğu
- Masa tenisi topları, strafor, ahşap bilyeler gibi çeşitli yuvarlak malzemeler test edildi
- Maliyet, ağırlık, temin kolaylığı, boyut tutarsızlığı gibi pratik zorluklarla karşılaşıldı
- Örneğin, 50 sentlik 1000 top için 500 dolar gerekir
- Masa tenisi topları delindikten sonra kolayca bozuluyor ve boyut farkları nedeniyle başarısız oluyor
- Neopball, rebound top, ahşap top ve strafor gibi seçenekler de delme, boyama, dayanıklılık ve ağırlık nedenleriyle uygun bulunmadı
Piksel Dönme Mekanizması Deneyleri
- LEGO tekerlek ve motor, sensörlerle birlikte kullanılarak piksel döndürme denemeleri yapıldı
- Solenoid, servo motor gibi farklı hareket yöntemleri test edildi; ancak hepsi güçlü kontrol zorluğu nedeniyle rafa kaldırıldı
Hacimli Pikselden Küp Piksele Geçiş
- Bir podcast sohbetinden sonra, küp şeklinde ahşap piksel tasarımına tamamen geçildi ve doğrudan üretime başlandı
- Seri üretime uygunluk nedeniyle oldukça fazla zaman aldı, ancak görsel ve hareketsel kalite sonunda tatmin edici oldu
Piksel Izgara Üretimi
- Pikselin kendisi yerine sabit bir ızgara yapısı tasarlandığından 40×25 düzeni kesin doğrulukla kurulabildi
- 40 deliği olan ince bir raf 25 adet işlenerek, piksel sabit aralıklı şekilde metal tellere geçirilerek sabitlendi
- Her pikselin çevresindekilerin etkisine girmeden tamamen bağımsız çalışması hedeflendi
CNC ve Sistem Kontrolü
- Temel CNC prensipleri ve G-kodu kullanımıyla ilgili açıklamalar içeriyor
- Raspberry Pi ve CNC kontrolcüsü, Python betikleri, ışık sensörü, pigpio kütüphanesi vb. kullanıldı
- Web API ile bir sonraki değiştirilecek piksel seçilip, G-kodu ile komut verildi; hareket sonucu sensör ile kontrol edilip API üzerinden geri bildirim döngüsü sağlandı
Piksel Manipülasyonu (Pixel Poking) Mekanizması
- Pikselde her 90° için özel bir oluk bulunur ve kenarı esnek bir çubuk (glue stick) ile iterek döndürür
- Tüm bu adımlar G-kodu üzerinden otomatikleştirilmiştir
Görüntü Çıkış Modları ve Web Arayüzü
- API, web uygulamasından yönetiliyor ve ekran için üç mod bulunuyor
- Kullanıcı gönderimi: Herkes 40×25 görsel gönderebilir ve oy verebilir; popüler çalışmalar sırayla gösterilir
- Canlı işbirliği: Katılımcılar pikseli gerçek zamanlı değiştirebilir (çok fazla katılımcı olduğunda verimli değil)
- Çocuk modu: Saat, şekil gibi öğeler algoritmik olarak dönüştürülerek gösterilir
- Web uygulaması yığını önce Node/Socket.IO, ardından Laravel+Livewire, nihayetinde Laravel+InertiaJS+VueJS ile son halini aldı
Gerçek Zamanlı Yayın ve Timelapse
- 2 web kamerası (yakın plan, geniş açı) ile OBS ve ffmpeg kullanılarak ekranın canlı YouTube yayını yapıldı
- API durum kontrolünden sonra tamamlanan çalışmanın timelapse videosu üretilip yayınlanabiliyor
Açık Sistem Güvenliği ve İşletme
- Kötüye kullanımı önlemek için minimum düzeyde kontrol uygulandı ve gerektiğinde hızlı içerik silme desteği eklendi
- Temelde oldukça açık katılım yapısı korunarak Bluesky OAuth ile giriş sağlandı
Gelecek Planları
- Kullanıcıların artan katılımı bekleniyor; ileride diğer kullanıcılara API aracılığıyla kontrol yetkisi verilebilir
- Sonunda ekranın webcam arka planı olarak, ofis, kafe gibi farklı mekânlarda kullanılması hedefleniyor
- Herkes web sitesinden gerçek zamanlı olarak katılıp izleyebiliyor
Sonuç
- Kilopixel, çevrim içi etkileşimi ve fiziksel gerçekliğin somutluğunu birleştiren özgün bir proje örneğidir
- Üretim sürecindeki çok sayıda deneme ve teknik emek, maker ve geliştirici toplulukları için ilham verici bir örnektir
1 yorum
Hacker News Yorumu
Gerçekten güzel bir projeydi; ben de geçmişte 30 pikselden oluşan bir ekran yapmıştım. PixelWeaver projesine bakın Mekanik olarak tüm piksellerin aynı anda değişmesini sağlayan punch card ve kol mantıklı bir yapısı vardı; geliştirme süreci bana çok tanıdık geldi.
Mumbo Jumbo, Hermitcraft'te trap door kullanarak benzer bir konsepti zaten yapmıştı. Şu an bir "buildstone" dönemi var; redstone ile estetik tasarlamanın yükselişi. Mumbo 2.0 videosu bakabilirsiniz. Grian ise dispenser, kar partikülü ve potion arrow ile animasyonlu bir şelale de yapmıştı. Grian'in şelale videosu
Gerçekten çok iyi bir proje; "kedinin 'hi' dediği" kısım bile izlendi. Son 9 gündür Bluesky'de @kilopx.com'da yeni bir gönderi yok gibi. Birkaç iyileştirme önerisi: yükleme tamamlandıktan sonra "kalemi" mümkün olduğunca hareket ettirip tamamlanan görüntüyü daha temiz çekmek; sitede mevcutta gönderi yükleyen kişinin bilgisini göstermek. Ayrıca tamamlanmış eserleri ayrı bir "history" galeride göstermek iyi olurdu. Şu anda bekleyen gönderilerde sadece "Timelapse will be available after this is drawn" gibi bir permalink var; ama tamamlanan veya ilerleyen sonuçları kolayca bulmanın bir yolu yok gibi görünüyor.
370 mikrohertzlik bir yenileme hızı, "Calm Technology" kavramına tamamen yeni bir anlam katıyor; çok iyi.
Bu konu gerçekten çok ilginç. Amber Case'in "Calm Technology" kitabını okuduysanız gerçekten önerilir mi diye merak ediyorum.
YouTube ana stream kamera frame rate'i de tesadüfen aynı rakama sahip, OP'nin bunu düzeltmesini isterim.
Deneyimlerime göre bu ekran piksel başına en pahalı ekransa gibi görünüyor; ama bu kadar çekici bir ekranı ilk kez görüyorum. En iyi ihtimalle tamamen "abartısızca" müthiş bir "sınırı aşan" şey.
Bu da çok güzel ve pahalı bir piksel örneği: yazıda bahsedilen Danny Rosin'in ayna eseri. ilgili video
Görüntüyi değiştirmezseniz neredeyse hiç enerji tüketmemesi de bir artı.
Mythbusters'ın hâlâ rekoru elinde tuttuğunu düşünüyorum. ilgili deney videosu
Piksel başı maliyeti gerçekten hesaplamak istemiyorum; benim zaman değerimi de ekleyince daha da öyle, bu yüzden net toplamı bilerek hesaplamadım.
Bir başka fikir: küplerin doğrudan yüzü öne değil de, köşesi öne bakacak şekilde açılması. Her küpte bitişik 2 koyu ve 2 açık yüz varsa, biri 45° sola, diğeri 45° sağa bakacak şekilde aynı anda iki görüntü ayarlanabilir (bir pikselde toplam 4 durum).
Bir rengi feda ederseniz, üçgen prizma şekli kullanarak yüzleri sanal olarak bitişik tutup ayrı ayrı döndürebilirsiniz. diyagram görseli
Her yüzü RGBK ya da CYMK ile boyayıp renkli bir ekrana genişletmek mümkün olabilir.
Benzer şekilde, kamerayı önden bırakarak mevcut donanımla piksel sayısını iki katına çıkarabilirsiniz.
Bu proje de harika ama hızlandırmak için farklı yollar sürekli aklıma geliyor (hızın ana nokta olmadığını bilsem de...). Blokları döndüren ünite x ekseni hizasını sürekli değiştirmeden çalışıyorsa bir sütunu çok hızlı işleyebiliriz; ya da y ekseni hizası gerekmeyen bir yapı olursa satır bazında da yapabiliriz. Blok döndürme ünitesini sürekli resetlemeye gerek bırakmayacak bir şekilde (ör. rotatif mimari gibi) kurarsak daha hızlı olurdu; bir endüstriyel otomasyon uzmanına yaptırsam gerçekten çabuk olurdu. Not olarak, ilk başta toplarla analog e-ink yaklaşımı seçmeleri çok etkileyici.
"Sadece görüntü güncellenirken güç harcayan bir nokta matrisi alternatifi"nden bahsedilecekse, şimdiye kadar hayal etmediğim bir şey bu: Kutunun bir yanında termal yazıcı, karşı tarafta sarma pulu + gerilim yayı saklı; termal kağıt rulosu UV-block camın arkasında açılıyor ve görüntü olarak gösteriliyor, yeni görsel basılarak ekranın "yenilenmesi" sağlanabiliyor. Böyle bir ekran yapılabilir mi acaba?
Bir adım daha ileri gidersek, Pilot Frixion kalemlerinde kullanılan sıcaklıkla silinen mürekkep ile ekran yüzeyi kapatılabilir. Bu mürekkep 60°C'de kayboluyor, -10°C'de tekrar kararıyor, aradaki sıcaklıkta stabil kalıyor. Böylece bir çevrim tekrar tekrar kullanılabilir ama mürekkebin dayanımının kaç döngü olacağı bilinmiyor.
Bazı faks cihazlarında termal kâğıt kullanılarak en az 8.5 inçe kadar ölçeklenebiliyor.
Her görsel değişiminde kağıt atılması gerekiyorsa, buna "display" denmesi anlamsız olur.
Kutu yapısını kullanırsak ekranı 4 yüzeye çıkarabiliriz; sadece mekanizma doğru yapılmalı. Ana ekrandaki görüntü değişirken diğer görüntüler 2. birinci, 3. ve 4. ekrana geçebilir; her köşeye çerçeve içine gizlenmiş bir rulo koyup bezel'de boşluk bırakılacak şekilde tasarlanırsa çok ilginç olurdu.
Gerçekten çok iyi. Yazı da çok eğlenceliydi. Bu proje, steampunk bir romanda okuduklarımı anımsattı. Google'da aradım ve inceledim; Gibson & Sterling'ın Difference Engine'inde geçen kinotrope'e rastladım. Burada biri, her piksele servo monte ettirdiği bir şey yapmış, gerçekten pahalı olmalı. ilgili blog yazısı
Breakfast design'da Rozin'in işinden ilhamla farklı "ortamlarda" birden çok benzer panel yaptı. breakfaststudio paneli
Daha "hızlı" bir versiyonu sürekli hayal ediyorum. Örneğin, her tarama çizgisi için ahşap bilyelerin tüplere veya kanallara fırlatılarak renklerine göre bilye beslenmesini sağlayan bir sistem düşünülebilir; yerçekimi veya pnömatik sistemle bir hattı resetleyip/yeniden doldurma yöntemi kullanılabilir. Ayrıca bunu stadyum boyutuna çıkarıp bowling topu piksellerini de yapabileceğimi hayal ettim. Zorluk, her rengi yeniden besleme kanalına doğru dağıtma zamanlamasında ve bilye darbesini yumuşatarak gürültü ile aşınmayı azaltacak bir düzenekte görünüyor. Diğer tarafta aktif matris yaklaşımıyla her blokta solenoid/servo ile yerinde dönerek çoklu renk ifade edilebilirdi.
Bu fikir, marble pixel art machine ile de oldukça benzer. marble pixel art machine videosu