Design
Walls, Openings, Roof — narzędzia, które rysują i zmieniają budynek. Te drzwi uzbrajają też edycję; na starcie jest wyłączona, żeby udostępniony projekt otwierał się jak skończony.
WebGL2 · Three.js · moduły ES
Builder to pełnowymiarowy projektant domu 3D, który po prostu mieszka w karcie przeglądarki. Three.js r183 na WebGL2, moduły ES serwowane przez importmap — bez bundlera, bez builda, bez instalacji. Jedenaście kinowych przebiegów na każdą klatkę, w sztywnej bramce 60 FPS.
Projekt jest stroną: szyna sześciu drzwi — Design, Outside, Plan, Furnish, Light, Share — a narzędzia żyją w środku jako karty. Wszystko unosi się nad kanwą; nic nie zabiera jej szerokości. Otworzysz drzwi, a narzędzia, których potrzebujesz, są już na miejscu.
Walls, Openings, Roof — narzędzia, które rysują i zmieniają budynek. Te drzwi uzbrajają też edycję; na starcie jest wyłączona, żeby udostępniony projekt otwierał się jak skończony.
Terrain, Garden, Roads: ukształtuj działkę, sadź z wiatrem, układaj drogi trzymające się terenu, wybierz otaczający krajobraz.
Przeczytaj budynek: rzut, pomieszczenia obliczone przez graf ścian, przekrój i widoki warstw.
Katalog 381 modeli i materiały — rozmieszczaj z geometryczną kontrolą poprawności, wykańczaj 64 proceduralnymi wzornikami.
Panel Sun: miejsce, data, godzina; odtwórz dobę w 15 / 45 / 120 sekund; na wierzchu grading filmowy.
Pokoje, role, obszary uprawnień, głos — i link ?design=, który otwiera ten sam dom na czyimś innym ekranie.
Architektura
Aplikacja jest dostarczana jako moduły ES, serwowane bezpośrednio i spięte importmapą. Three.js r183 ładuje się prosto do karty; strona jest aplikacją. Nie ma pipeline'u builda, który mógłby się zepsuć — i nie ma nic do pobierania.
Moduły rozwiązują się po nazwie przez importmapę — linkowanie robi przeglądarka, serwer po prostu serwuje pliki.
Three.js r183 celuje w WebGL2 — instancing, tekstury zmiennoprzecinkowe i cała praca cieni idą nowoczesną ścieżką.
Otwórz builder.castomo.com/editor/, a dom buduje się sam. Parametry ?fresh=1, ?empty=1, ?quality= i ?reveal=0|1 zmieniają jego zachowanie.
Autosave do localStorage, projekty trzymane po stronie serwera, *.webhome.json w obie strony, Ctrl+S kiedy chcesz.
Funkcja · W przeglądarce
Pod obciążeniem testowym — 1 fundament, 2 kondygnacje, 15 ścian, 8 otworów, w tym trójkątne, 50 obiektów — bramka trzyma 60 FPS, poniżej 300 draw calli i 250 MB sterty. Zmierzono na Apple M4: 286 draw calli, 60 fps, 28 MB na jakości medium z pełnym stosem 11 przebiegów.
Zobacz, jak działaStos kinowy to nie preset nałożony przy eksporcie — działa na każdej klatce, na którą patrzysz: okluzja otoczenia GTAO, promienie boskie, anamorficzne smugi, HDR bloom, motion blur, heksagonalna głębia ostrości z autofocusem, tonowanie ACES, filmowy grading 3D LUT, halacja, winieta, ziarno, aberracja chromatyczna i wyostrzanie oraz antyaliasing SMAA — a na przeszkleniach jeszcze odbicia w screen-space.
„Silnik renderujący był kiedyś farmą renderów. Dziś jest pętlą klatek — i nadąża.”
— Builder, z założeniaDlaczego to musi być na żywo
Showroomy z zapieczonymi renderami fotografują jedną chwilę i zamrażają ją. Projektant edytuje żywą geometrię — przesuń ścianę, wydłuż dach, wytnij okno, a każdy cień, każde odbicie, każdy promień boski musi przeliczyć się w tej samej sekundzie. Builder renderuje prawdziwe słońce (serie niskiej precyzji Meeusa, dokładność około 0,01°) na tym, czym bryła jest właśnie teraz. Nic nie jest zapieczone, bo nic nie stoi w miejscu: światło liczy się na każdą klatkę, więc pozostaje uczciwe, gdy projekt zmienia się pod nim.
WebGL2, moduły ES, jedenaście kinowych przebiegów — i nic do instalowania.
Ilustracje: GetIllustrations.com (pakiet Angle).