← Biuro: jak to działa

Jak działa vistelier

Silnik robi z opisu wnętrza w Pythonie rendery, spacer w przeglądarce, rysunki i stronę. Projekt (biuro, mieszkanie B.1.4, kolejne) ma tylko dane i treść: wymiary, meble, ujęcia, teksty. Wszystko inne jest wspólne.

Droga od sceny do strony

  1. Scena (src/scene.py projektu) buduje wnętrze w Blenderze z zestawu silnika (blender/zestaw.py): materiały, bryły, szafki z ruchomymi frontami, lampy, kamery. Różnice między projektami (liczba segmentów walców, fazy krawędzi, rodzaj szkła, moc lamp) są w profilu (profil(...)), żeby przenosiny kodu nie zmieniały obrazu.
  2. Odcisk sceny (vistelier fingerprint) zapisuje położenie, wymiar, materiał i modyfikatory każdego obiektu oraz świat i ustawienia renderu. Budowa sceny bez renderu trwa sekundy, więc to podstawowa kontrola: zmiana kodu, która nie ma zmieniać wyglądu, musi dać 0 różnic względem baza/.
  3. Rendery (vistelier render) i wypalanie spaceru (vistelier bake) liczą się wyłącznie w chmurze. Silnik zakłada maszynę RunPod, przygotowuje ją (Blender, biblioteki, log karty, wyłącznik czasowy), wysyła źródła, czeka, pobiera wynik i zawsze usuwa maszynę — także po błędzie, Ctrl+C i zamknięciu terminala. Limit czasu i kwoty pilnuje laptop, a na wypadek uśpienia laptopa maszyna usuwa się sama. Wydatki: vistelier costs.
  4. Wypalanie (wypalanie/fpp_bake.py) dostaje od sceny słownik SPACER (grupy świateł, łączniki, drzwi, elementy, strefy, siatka kolizji, miejsca). Liczy kolor i światło każdej grupy lamp do atlasów, usuwa ściany niewidoczne z wnętrza, zapisuje siatkę kolizji, sondy światła i model z nazwanymi elementami. Odcisk wypalenia pozwala liczyć potem tylko to, co się zmieniło.
  5. Składanie spaceru (spacer/build_spacer.py) koduje mapy światła do JPEG, a przeglądarka (spacer/spacer.html, three.js) sumuje włączone grupy świateł, pozwala chodzić, otwierać drzwi i szuflady, przełączać noc, warstwy i warianty. Ustawienia przeglądarki dla projektu są w spacer.json. Muzykę, dźwięki, tło za oknem, teksturę podłogi i nagrania lektora robi vistelier extras (lektor nagrywa od nowa tylko te strefy, których tekst się zmienił).
  6. Rysunki (rysunki/svg.py) i strona projektu korzystają ze wspólnych arkuszy, wymiarów, tabel i znaczków „nieaktualne”. PDF do druku (A3) i PNG z rysunków SVG robi Chromium bez okna (rysunki/druk.py), na laptopie, bo to sekundy. Rzut z podkładem renderu, numerami, legendą i listą zakupów: rysunki/rzut.py; kosztorys z wariantami i XLSX: wycena/; film promo z orbity i renderów: film/promo.py.
  7. Plik stanu (vistelier status) zapamiętuje, z jakiej wersji źródeł powstał każdy wynik, i mówi, co trzeba przeliczyć. Wersje (vistelier version): zaakceptowana paczka zmian dostaje tag gita (v1, v2…), a numer bieżącej wersji trafia do spaceru i do komentarzy, więc wiadomo, do której wersji odnosi się uwaga.
  8. Wgrywanie (vistelier deploy) wysyła cele z projekt.toml na serwer przez ssh; zrzuty spaceru z testem chodzenia (vistelier screenshots) też liczą się w chmurze.
  9. Komentarze (komentarze/): w spacerze można nagrać uwagę, zaznaczyć element i dostać odpowiedź głosem od agenta (Whisper → Claude tylko do odczytu → podgląd zmiany i wpis w rejestrze). Serwer działa na two71.io, agent na laptopie.

Co potrafi silnik

Pełna lista funkcji, które dostaje każdy projekt. W nawiasach: polecenie, parametr adresu albo klucz ustawień projektu (spacer.json, projekt.toml). Funkcja oznaczona „(projekt)” wymaga wpisu po stronie projektu.

Spacer w przeglądarce (telefon i komputer)

Rendery, film i spacer w chmurze

Rysunki, strona, kosztorys

Kontrola i porządek

Nowy projekt

vistelier new KATALOG --title "..." tworzy pokój z oknem, drzwiami, stołem, szafką i lampą, z ujęciami i spacerem. Dalej: silnik/vistelier fingerprint /dev/shm/o.json, silnik/vistelier render --preview, silnik/vistelier bake --draft. Plan przenosin i lista kontrolna: docs/PLAN.html.