RealEstateAI
Delavnica

Atlas slovenske obale, v katerem nobena številka ni napisana na roko

Postavili smo stran sloveniavillas.com: 3D-relief z lastnimi senčilniki, izmerjeni časi vožnje, sedem orodij za izračun in enajst preverjanj, ki ustavijo gradnjo strani, kadar ta zapiše nekaj, česar ne zna dokazati.

8. oktober 2026 · 8 min

Tržaški zaliv, slovenska obala in Kras kot 3D-relief v mraku, izrisan iz višinskih podatkov, s svetlimi plastnicami na temnem terenu in odprtim morjem na zahodu (prikaz podatkov, ne fotografija in ne ustvarjena slika).

6. oktobra je na splet prišla stran sloveniavillas.com, stran naše skupine o slovenski obali in Krasu: o krajih, ki so od Trga Unità v Trstu oddaljeni od 18 do 45 minut vožnje. Štirje jeziki, enajst krajev, vodniki za kupce in prodajalce ter sedem orodij.

Skoraj vse tehnične odločitve izhajajo iz enega dejstva. V Sloveniji danes še ne posredujemo: začetek dejavnosti je predviden v letu 2027. Stran nima nepremičnin na prodaj, ima podatke. Zato smo največ dela vložili v natančno določen problem: preprečiti, da bi stran zapisala številko, za katero ne ve, od kod prihaja.

Nobena številka ni napisana na roko

V besedilih strani ni številk, so le nadomestne oznake: ena pomeni »minute od Trsta do Kopra«, druga »mediana cen hiš v slovenski evidenci trga nepremičnin«. Ob gradnji strani jih razreši ena sama funkcija, vsaka vrednost pa s seboj nosi vir in datum. Oznaka, ki ne obstaja, na strani ne pusti luknje: ustavi gradnjo. Posebno preverjanje zavrne številke, napisane na roko ob merski enoti, z izrecnim seznamom izjem (letnice, datumi, sklici na predpise).

Tudi »2027« je zapisano na enem samem mestu, skupaj z rokom za ponovni pregled: po 15. decembru se stran ne zgradi več, dokler podatka ne posodobi človek. Celo naslov domače strani je izračun. V italijanščini vzame najbližji kraj, Sežano, oddaljeno 18,3 minute, in zaokroži: »Venti minuti oltre Trieste« (dvajset minut onkraj Trsta). V nemščini primerja čase iz Münchna in z Dunaja, od koder je pot do Kopra manj kot minuto daljša od poti do Trsta: »Koper liegt eine Minute hinter Triest«. Če bi se razlika povečala, bi se spremenila številka, nad devetimi minutami pa stavek.

Minute, izmerjene

Čase vožnje izračuna OSRM, usmerjevalnik na podatkih OpenStreetMap: ena sama zahteva vrne celotno matriko iz desetih izhodiščnih mest do enajstih krajev. Gre za čase brez prometa in to zapišemo ob vsaki številki: navadno so za 10–20 % preveč optimistični, poleti pa so na obali lahko tudi dvakrat daljši.

Val minut, ki se širi po reliefu, je mreža 72 × 70 celic, pripetih na najbližjo cesto, zglajena in nato primerjana z matriko: na enajstih krajih odstopanje ne preseže 1,6 minute, razen v Piranu, kjer znaša −4,4 minute, in to piše tudi v dokumentaciji.

3D-relief brez knjižnic

Relief temelji na odprtih višinskih podatkih (EU-DEM in SRTM), približno 47 metrov na slikovno točko; višine so povečane, kar navaja tudi legenda. Specifikacija je predvidevala three.js, pogon pa ga ne uporablja. Prizor ima šest stalnih prehodov z lastnimi senčilniki v WebGL2, geometrija se gradi v Web Workerju, stisnjena koda pa tehta približno 27 KB.

three.js je ostal kot razsodnik. Matematika kamere je naša, skripta pa jo na približno 2.500 naključnih točkah primerja z matematiko iz three.js: največje odstopanje je 1,2 milijoninke, nad eno desettisočinko pa se skripta ustavi z napako. Če je prvih 30 sličic prepočasnih, pogon zniža ločljivost in, če to ne zadošča, preklopi na mirujoče slike istega prizora.

Sedem orodij in njihova napaka

Orodja segajo od stroškov nakupa v primerjavi z Italijo, Avstrijo in Nemčijo do dokumentov za prodajo. Tri zgodbe.

Cena iz primera je padla točno na mejo. Kalkulator stroškov nakupa bere davčna pravila s seznama, na katerem ima vsako pravilo vir in stanje preverjenosti: nepreverjeno pravilo se ne izpiše. Sodna taksa za vpis v zemljiško knjigo se obračunava po razredih, naša cena iz primera, 600.000 €, pa je natanko meja med dvema razredoma. Koda je zgornjo mejo vključevala, slovenska tarifa jo izključuje: kalkulator je izpisal 160 € namesto 200 €. Zdaj vsaka tabela izrecno navede svoje pravilo.

Formula, ki ni upoštevala proračuna. Za »najdite svojo Slovenijo« je specifikacija zahtevala primerjavo krajev po kvadratnih metrih, ki jih lahko kupite s svojim proračunom. Če pa te kvadratne metre normaliziramo med najmanjšo in največjo vrednostjo, dajo za vsak proračun enak vrstni red: proračun se pri deljenju pokrajša in vedno zmaga najcenejši kraj, tudi za tistega, ki ima na voljo dva milijona. Namesto njih zdaj šteje, koliko hiš je bilo v občini od leta 2021 prodanih v izbranem cenovnem razredu.

Model, ki pokaže svojo napako. »Koliko je vredna vaša hiša« zajema Koper, Ankaran, Izolo in Piran: statistični model, zgrajen na 685 hišah in 2.341 stanovanjih, prodanih med januarjem 2021 in avgustom 2026, iz javne evidence trga nepremičnin Geodetske uprave Republike Slovenije. Gre za tržno analizo za bralca, ne za cenitev. Mediana odstotne napake, izmerjena zunaj vzorca s petkratnim navzkrižnim preverjanjem, ponovljenim trikrat, znaša 21,3 % pri hišah in 13,0 % pri stanovanjih: vsaka druga hiša pade zunaj ±20 %. Pri hišah model ni boljši od razmerja s posplošeno vrednostjo GURS (21,3 % proti 20,7 % na istih prodajah), zato orodje prikaže oba izračuna drug ob drugem, vedno kot razpon. Javna datoteka vsebuje samo zbirne podatke: skripta preveri, da v njej ni ne cen ne lokacij posameznih prodaj.

Enajst preverjanj, preizkušenih na tem, kar morajo ustaviti

Pred gradnjo teče enajst preverjanj, od jezikov do kontrasta. Vsako ima svoje testne primere: majhen nabor datotek, ki ga mora zavrniti, in drugega, ki ga mora prepustiti. Zavrnjeni primer mora pasti iz predvidenega razloga in samo iz njega; sprejeti mora prebrati vsaj toliko, kot navaja, saj preverjanje, ki ne prebere ničesar, vedno uspe. Različic je 33 in vse se obnašajo tako, kot morajo.

  • Prepovedani stavki, jezik za jezikom. V slovenščini je »posredujemo« prepovedano, »še ne posredujemo« pa mora skozi, prav tako »posredujemo podatke« v pomenu »podatke pošljemo naprej«.
  • Slike. Od 28 slik, ki so šle skozi generativni model, vse razen ene izhajajo iz fotografij s prosto licenco; vsaka ima oznako UI in vrstico v registru z virom, licenco, modelom in spremembami. Pregled na oko je vrnil štiri slike: model si je na tablah izmislil napise in dodal ljudi.

Pomočnik, ki ne vidi baze podatkov

Na strani je pomočnik UI, vendar stran z modelom ne govori neposredno. Po lastnih besedilih išče z BM25, besednim indeksom, napisanim brez knjižnic, ustrezne odlomke pa s podpisom pošlje v naš CRM. CRM poskrbi za vse drugo: stikalo, ki je privzeto izklopljeno, omejitev porabe, tri prosta vprašanja, pri četrtem pa ime, kontakt in privolitev. Model ne vidi baze podatkov, povezave v odgovoru, ki jih ni v poslanem gradivu, pa se naknadno odstranijo.

Kaj še ne deluje

  • Domača stran je pretežka: skoraj megabajt HTML-ja, v stisnjeni obliki približno 190 KB, pri proračunu 100 KB. Več kot polovica so podatki za komponente, ki tečejo v brskalniku.
  • Živega reliefa še nismo pogledali na pravi grafični kartici. Samodejni preizkusi uporabljajo Chrome brez okna, ki riše programsko: pogon to prepozna in preklopi na mirujoče slike.
  • Nemščine in slovenščine še ni pregledal človek: doslej so besedila prebrali agenti.
  • Časi prihajajo z javnega strežnika OSRM, ne z lastnega, kot je zahtevala specifikacija.

Stran, ki ničesar ne prodaja, ima en sam kapital: da njene številke držijo. Zato se največji del dela ne vidi: je v preverjanjih, ki ustavijo gradnjo, v podatkih, ki jih lahko vsakdo prenese, in v tem, da smo vsako preverjanje, preden smo mu verjeli, prisilili, da pade.

Prevedeno iz italijanščine z umetno inteligenco.

#podatki#webgl#preverjanje-dejstev#orodja#sloveniavillas

Berite naprej