Rynek nocą: oświetlona scena i gęsty tłum ludzi, wokół ciemne kamienice z zapalonymi oknami

Miasto przed obiadem. Zabawa AI i makieta, która powstała w jeden poranek

30.10.2026

O 8:51 zapisałem w notatce: „Chciałbym zrobić podobną aplikację”. O 10:54 trójwymiarowa makieta Starego Sącza działała już na moim serwerze, z korkami, pociągiem i koncertem na rynku. To tekst o tym, jak bardzo przyspieszyła zabawa z AI, i o tym, co w tym przyspieszeniu uwiera.

Jak to się zaczęło

Zobaczyłem Kraków w pikselach, izometryczną mapę miasta z osią czasu. Piękna rzecz. Pomyślałem, że Stary Sącz też zasługuje na swoją makietę. Nie kopię, tylko coś własnego: kostki o boku metra, matowe kolory jak w muzealnej gablocie, żadnych tekstur z gier.

Kiedyś taki pomysł trafiłby na listę „kiedyś, jak będzie czas”. Czyli nigdy. Tym razem otworzyłem terminal i zacząłem rozmawiać z agentem AI, który pisze kod, uruchamia skrypty i sam sprawdza, co mu wyszło.

Makieta Starego Sącza w dziennym świetle: rynek otoczony kamienicami, ulice, drzewa i parkingi, po bokach panel z gotowymi widokami i suwakiem pory dnia(powiększ)
Tak wygląda makieta po otwarciu. Każdy budynek to prawdziwy obrys z danych geodezyjnych.

Kronika jednego poranka

Historia zmian w repozytorium wygląda jak relacja na żywo:

  • 8:51 notatka z pomysłem i kilkoma pytaniami,
  • 9:36 pierwszy prototyp: budynki 3D, teren, ulice i granice działek,
  • 10:03 rzeki, most, kolory dachów odczytane z ortofotomapy, okna, wyróżnione zabytki,
  • 10:13 mgła na krawędziach, gotowe widoki, cmentarz ze zniczami, auta na parkingach,
  • 10:29 ruch uliczny, pociąg i ludzie na rynku zależnie od pory dnia,
  • 10:51 wydarzenia, chmury, ptaki, balon, samolot, pożar traw ze strażą i model Ołtarza Papieskiego,
  • 10:54 wdrożenie na serwer,
  • 12:46 wersja na telefony i statystyki bez ciasteczek.

Dwie godziny od pomysłu do działającej strony. Kilka tysięcy linii kodu. Kawa nawet nie zdążyła wystygnąć, bo jej nie zrobiłem.

Prawdziwe dane, wymyślone szczegóły

Makieta nie jest obrazkiem z generatora. Szkielet pochodzi z otwartych danych:

  • modele budynków 3D, numeryczny model terenu i ortofotomapa z GUGiK,
  • granice działek z usługi ULDK,
  • ulice, rzeki, mury, ławki i kapliczki z OpenStreetMap.

AI napisało kod, który te dane łączy, układa z nich kostki i oświetla w przeglądarce. Wycinek ma 3,8 na 4,6 km, a każda kostka to jeden metr.

Ale już okna są zgadywane: jedno na ścianę, potem co mniej więcej cztery metry. Kolor ścian jest losowany z kilku jasnych odcieni. Płoty stoją tam, gdzie „pewnie są płoty”. Wygląda wiarygodnie, i to jest pierwsza lekcja tego tekstu.

Smaczki, czyli za co lubię tę zabawę

Najwięcej frajdy dały drobiazgi, których nikt nie zamawiał w specyfikacji, bo specyfikacji nie było.

Droga krajowa 87, czyli ulica Węgierska, ma w kodzie 110 aut na kilometr pasa. W dzień jest zakorkowana zawsze. Nikt mi nie zarzuci, że makieta odbiega od rzeczywistości.

Długi sznur samochodów stojących na drodze krajowej między polami i zadrzewionym brzegiem rzeki(powiększ)
Korek na DK87 o ósmej rano. Symulacja zgodna z doświadczeniem mieszkańców.

Na rynku od rana pojawiają się ludzie, najwięcej między 9 a 15. Po 20 rynek pustoszeje. Chyba że wybierzemy koncert: wtedy scena świeci, a tłum się kołysze.

Rynek nocą: oświetlona scena i gęsty tłum ludzi, wokół ciemne kamienice z zapalonymi oknami(powiększ)
Koncert na rynku o 20:30. Okna w kamienicach zapalają się same, kiedy zapada zmrok.

Agropromocja to setki kolorowych stoisk w alejkach przed Ołtarzem Papieskim. Sam ołtarz nie miał modelu 3D w danych, więc powstał w kodzie, kostka po kostce, razem z trzema masztami z flagami.

Rzędy stoisk z czerwonymi, niebieskimi, żółtymi i zielonymi dachami, między nimi tłum, w tle drewniany ołtarz z masztami(powiększ)
Agropromocja w południe. Brakuje tylko zapachu kiełbasy.

Na cmentarzu nagrobki stoją w rzędach, z alejkami. Mniej więcej co trzeci ma znicz, który wieczorem świeci. To najcichsze miejsce na makiecie i, nie wiedzieć czemu, najbardziej wzruszające.

Cmentarz po zmroku: setki drobnych świateł zniczy między ciemnymi koronami drzew(powiększ)
Stary cmentarz o 21:00.

Do tego pociąg z czterema wagonami, który kursuje od piątej do dwudziestej drugiej. Balon nad miastem rano i przed wieczorem. Samolot ze smugą. I raz na kilka minut pożar traw przy drodze, do którego na sygnale dojeżdża straż, gasi i odjeżdża.

Klasztor z dużym wirydarzem i kościołem, zabytkowe budynki wyróżnione złotym kolorem(powiększ)
Klasztor Klarysek z włączonym wyróżnieniem zabytków.
Parking z kilkudziesięcioma kolorowymi autami ustawionymi w rzędach, obok droga, pola i drzewa(powiększ)
Park and ride. Auta stoją na co drugim miejscu wyznaczonym w OpenStreetMap.

Ciemne strony, czyli kto tu właściwie pracował

Teraz część filozoficzna. Można ją przeczytać przy tej kawie, której rano nie zrobiłem.

Model nie wie, że nie wie

Daty zabytków miały pochodzić ze skanu urzędowego wykazu. Skan odczytywał lokalny model wizyjny Qwen3-VL 8B, dwa razy, w różnej rozdzielczości. Pierwsza strona dokumentu nie zawierała żadnej tabeli. Model i tak dopisał do niej wiersze. Równe, schludne i całkowicie zmyślone.

To jest najważniejsza rzecz, jaką wiem o AI: myli się z tą samą pewnością siebie, z jaką ma rację. Dlatego skrypt porównuje oba przebiegi, a różnice sprawdzam ręcznie na skanie.

Szybkość nie jest prawdą

Makieta, która powstaje w dwie godziny, wygląda jak praca na miesiąc. Okna, płoty i kolory ścian są przekonujące, choć częściowo wymyślone. Im ładniej coś wygląda, tym łatwiej przestać pytać, skąd to wiemy.

Historia miasta to inny poziom trudności. Oś czasu od XIII wieku kusi, ale AI chętnie dopowie brakujące stulecia. Dlatego rekonstrukcje będą opisane jako interpretacja, ze źródłem i datą. Fakty muszą pochodzić od historyków, nie z autouzupełniania.

Łatwo skopiować, trudniej uczciwie

Skoro w dwie godziny da się zbudować makietę miasta, to w dwie godziny da się też zrobić klona cudzego projektu. Technicznie to żaden problem. Dlatego od pierwszej notatki zapisałem zasadę: własny kod, własny styl, własne teksty, podziękowanie za inspirację w stopce. AI nie ma sumienia, więc musi je mieć człowiek przy klawiaturze.

Kto jest autorem?

Pisałem polecenia, wybierałem dane, odrzucałem złe pomysły i decydowałem, co zostaje. Kod w większości napisał model. Czuję się trochę jak reżyser, który nie umie grać, ale wie, kiedy aktor fałszuje. Czy to jeszcze rzemiosło, czy już tylko gust? Nie wiem. Wiem natomiast, że bez wiedzy, czym jest NMT, LoD2 czy ULDK, nie wiedziałbym, o co prosić.

Co z nami będzie

Jest też obawa mniej zabawna. Jeśli wszystko da się zrobić w dwie godziny, łatwo zrobić za dużo rzeczy, a żadnej porządnie. Można też powoli oduczyć się myślenia, które kiedyś było częścią pracy. Mój sposób na to jest prosty: AI robi pierwszy szkic, ja zostaję przy pytaniach „czy to prawda” i „czy to ma sens”.

Most nad szeroką rzeką widziany z góry, na moście jadą samochody, na wodzie widać mielizny(powiększ)
Most św. Kingi o ósmej rano. Kostki nie zmyślają, ale kod, który je układa, czasem tak.

Co z tego zostaje

Zabawa AI daje coś, czego dawno nie miałem: odwagę do pomysłów, które wcześniej wydawały się za duże na wolny poranek. Makieta Starego Sącza jest prototypem, ale prawdziwym, działającym i z danymi, które da się sprawdzić.

Dalej będzie wolniej, i dobrze. Historia, opisy zabytków i konsultacje z ludźmi, którzy znają miasto, nie przyspieszą od lepszego modelu. AI zbudowało miasto przed obiadem. Sprawdzenie, czy to na pewno nasze miasto, zajmie znacznie dłużej.

Źródła

Kraków w pikselach, projekt Michała Pietralika, który był inspiracją

Otwarte dane GUGiK: modele 3D budynków

OpenStreetMap

Qwen3-VL 8B Instruct: karta modelu

LM Studio: lokalny serwer API

Kliknij albo przewiń, żeby przybliżyć. Przeciągnij, żeby przesunąć.Stuknij dwa razy albo rozsuń palce, żeby przybliżyć.

Przydał się ten tekst?

Nowe teksty na maila

Raz na jakiś czas, gdy pojawi się nowy wpis albo projekt. Bez reklam.

Masz pomysł, pytanie albo uwagę? Napisz do mnie:Włącz JavaScript, żeby zobaczyć adres e-mail