Från labbet

En teknisk tvist på morgondagens väder

Vi programmerade en LED-skärm som visade animationer av ”Morgondagens väder”.

Tech used

  • Golang
  • Pixel
  • OpenWeatherMap
  • Raspberry Pi
  • Vulkan

Bakgrund

Att ta fram konstinstallationer för allmänheten kan vara ett roligt projekt för ett teknikorienterat arbetslag men det innebär också att man ställs inför en del unika utmaningar. Det var något vi lärde oss när vi fick i uppdrag att skapa en konstinstallation som kallas "Morgondagens väder" för konstnärerna Susanna Jablonski och Santiago Mostyn. Vår uppgift var att programmera en rund LED-skärm som visar en animerad bild av kommande dags väder i Timișoara, Rumänien.

Processen och Utmaningar

För att få installationen att bli verklighet så behövde vi tänka till såväl kreativt som strategiskt. Vi började med att träffa konstnärerna för att enas kring en vision och började sedan titta på vad som skulle vara bästa programmeringsspråk, ramverk och hårdvara för projektet.

Efter lite experimenterande beslutade vi oss för att använda Golang, 2D-spelbiblioteket Pixel och en Raspberry Pi 4 för att driva själva installationen. Vi valde också att använda OpenWeatherMap API för att kunna få fram väderprognoser. Vi delade sedan upp projektet i tre huvudområden: väder-API, hårdvara, och grafik. Vi tilldelade sedan roller inom dessa huvudområden till varje medarbetare för att snabbt och effektivt kunna slutföra arbetet.

Vi stötte på många utmaningar under projektets gång. En av de största var att lista ut hur vi skulle programmera grafiken i Golang med hjälp av Pixel, som är ett relativt litet 2D-spelbibliotek. Vi var också tvungna att hitta och skapa resurser som skulle passa konstnärernas vision av modern och vertikal estetik, vilket var en tidskrävande uppgift. En annan utmaning vi stötte på var att få Raspberry Pi 4 att köra applikationen, eftersom den inte stödde OpenGL 3.3, som Pixel var beroende av. Som tur var hittade vi till slut en lösning genom att kombinera rendering av programvara med experimentellt Vulkan-stöd.

Resultat

Trots våra utmaningar lyckades vi skapa en installation som uppfyllde konstnärernas vision och visade nästa dags väder i Timișoara med visuellt tilltalande grafik.




En av de viktigaste lärdomarna från detta projekt var att vi hade kunnat spara en hel del tid och arbetskraft om vi haft en dedikerad designer eller ett mer omfattande resursbibliotek för grafiken i projektet. Vi lärde oss också att det var enkelt att implementera dagliga väderprognoser med hjälp av OpenWeatherMap – tack vare de fantastiska net/http-funktionerna i Golangs standardbibliotek. Vi är dock osäkra på hur bra applikationen kommer att fungera efter lite längre drifttid och det är möjligt att mer kraftfull hårdvara behövs för att stödja renderingen av mjukvara. Med det sagt gör en sådan enkel implementering API:t intressant för andra användningsområden och idéer i framtiden.

På tal om framtiden – vi har många idéer för att både utvidga och utveckla projektet. En av de största funktionerna vi skulle vilja lägga till är förmågan att dynamiskt rendera mer detaljerade skillnader i olika väderförhållanden och tidpunkter på dagen. Vi ser också fram emot att lära oss mer om hur LED-skärmen kommer att ta emot input från vår applikation och hur den ser ut när den visas i ett runt format.

Även om vi blev både glada och positivt överraskade av vår första iteration av detta koncept så är tanken på att förbättra produkten och göra den ännu bättre i framtiden en spännande sådan!