
Portals ni nini?
Portals ni safari ya ndege ya kivinjari isiyohitaji uendeshaji kupitia dunia 3D 471 zilizotengenezwa. Kamera hufuata njia iliyowekwa awali, hufikia lango, na hupita moja kwa moja hadi kwenye dunia inayofuata inayoendelea bila kukatika au kufifia. Huendeshi safari hiyo, lakini unaweza kudhibiti kasi, mwonekano, sauti, michoro, na uteuzi wa dunia.

Mradi huu umejengwa kwa JavaScript na three.js. Kila dunia hutengeneza jiometri na maumbo yake ndani ya kivinjari, na sauti yake hutengenezwa wakati wa uchezaji. Dunia hazipakii miundo ya 3D, picha za maumbo, au faili za sauti kutoka nje. Mradi huu pia ni tovuti tuli: hauhitaji akaunti, seva ya programu, au huduma ya ufuatiliaji.
Hazina inawakilisha toleo
s8fkufikia Novemba 9, 2026. Toleo hilo lina takriban mistari milioni 1.4 ya JavaScript na dunia 471.
Vipengele muhimu
- Dunia 471 zilizotengenezwa: Mkusanyiko huu unajumuisha maeneo ya nyika, miji, bahari, ndani ya majengo, anga, mazingira ya kigeni, mandhari za kabla ya historia, maeneo yaliyochochewa na sanaa, dunia za fasihi, misukumo ya filamu na televisheni, maajabu ya kale, na vichekesho vya ndani kuhusu AI.
- Malango yasiyokatika: Dunia ya sasa na dunia iliyo upande wa pili wa lango huendeshwa kwa wakati mmoja, hivyo kamera inaweza kuvuka bila skrini ya mpito.
- Vipengele vya kimchakato: Jiometri, maumbo, na sauti hutengenezwa ndani ya kivinjari badala ya kupakiwa kama vipengele vya kawaida vya dunia.
- Ndege ya kiotomatiki: Kila dunia hutoa njia na muda wa kamera. Safari nyingi huchukua takriban sekunde 40 hadi 50.
- Michoro inayojirekebisha: Hali ya kiotomatiki hukadiria kiwango cha ubora kutoka kwenye kadi ya michoro na kurekebisha mwonekano wa uchoro ili kudumisha mwendo laini.
- Mapendeleo ya ndani: Dunia zilizotazamwa, vipendwa, na mipangilio hubaki katika hifadhi ya kivinjari.
- Matunzio na safari: Matunzio huonyesha dunia zote, huku safari 20 zilizoratibiwa zikicheza dunia zilizochaguliwa kwa mpangilio maalum.
- Usambazaji tuli: Muundo wa uzalishaji huunda faili za kawaida katika
distzinazoweza kutolewa na mwenyeji wa wavuti tuli.
Mahitaji ya awali
Unahitaji Node.js 18 au toleo jipya zaidi pamoja na Git. Hakikisho la moja kwa moja la chanzo halihitaji usakinishaji au hatua ya uundaji. Kadi maalum ya michoro inapendekezwa, ingawa mradi unaweza kufanya kazi kwa ubora uliopunguzwa kwenye simu na kompyuta mpakato za zamani.
Thibitisha toleo lako la Node.js:

node --versionIkiwa matokeo ni ya awali kuliko toleo la 18, sasisha Node.js kabla ya kuendelea.
Endesha Portals moja kwa moja kutoka kwenye chanzo
1. Nakili hazina
git clone https://github.com/emollick/ai-portals.git
cd ai-portals2. Anzisha seva ya ndani ya chanzo
npm startFungua http://localhost:8000 kwenye kivinjari. Hii hutoa mti wa chanzo kama ulivyo, bila kuhitaji usakinishaji wa vifurushi au ujumuishaji kwanza.
Hakikisho la chanzo lina vikwazo viwili vinavyotarajiwa. Matunzio yake hayawezi kutambua dunia zilizoongezwa hivi karibuni au kuonyesha ukurasa wa maelezo yaliyotengenezwa. Katika ziara ya kwanza, kiweko cha kivinjari pia huripoti faili ya atlas.json inayokosekana kwa sababu faili hiyo hutengenezwa tu na mchakato wa uundaji.
Unda na hakiki muundo wa uzalishaji

Sakinisha vitegemezi vya uundaji, tengeneza kifurushi cha usambazaji, na uanzishe seva yake ya hakikisho:
npm install
npm run build
npm run previewTovuti tuli iliyotengenezwa huandikwa katika dist. Fungua http://localhost:8001 ili kuikagua.
Uundaji hupunguza ukubwa wa hati za mradi kwa kutumia esbuild na huunda rasilimali za usambazaji pekee, zikiwemo:
- Ukurasa mdogo wa hakikisho la kushirikiwa kwa kila dunia na safari.
- Ukurasa wazi unaoorodhesha kila dunia na maelezo yake.
- Data ya matunzio inayorekodi dunia ambazo ni mpya.
- Faili ya usanidi wa uhifadhi.
Rudia toleo s8f
Uundaji hukubali muhuri wa toleo. Kulingana na nyaraka za hazina, amri ifuatayo ilirudia faili ya toleo hai s8f kwa faili na baiti kwa baiti mnamo Novemba 9, 2026:
npm run build -- --stamp s8fTumia uundaji wa kawaida wakati wa kutengeneza. Tumia muhuri huo unapohitaji metadata ya toleo mahususi au unapotaka kurudia toleo lililoandikwa kwenye nyaraka.
Vidhibiti na matumizi ya msingi

Portals huanza kuruka kiotomatiki. Sauti huanza ikiwa imezimwa, kwa hiyo bonyeza S ikiwa unataka kusikia wimbo wa sauti uliotengenezwa. Vidhibiti vya kibodi ni:
- Space: Sitisha au endeleza safari.
- Mshale wa kulia: Harakisha kuelekea lango linalofuata.
- S: Washa au zima sauti.
- G: Washa hali ya Upole kwa kamera thabiti zaidi na upeo ulionyooka.
- H: Hifadhi dunia ya sasa kama kipendwa.
- P: Hifadhi picha.
- I: Fungua kiolesura cha matunzio, safari, na utafutaji.
- O: Fungua chaguo za michoro, kamera, mtindo wa sanaa, safari, mwandamani, na muda wa siku.
- F: Ingia au toka kwenye hali ya skrini nzima.
Kusogeza kipanya huonyesha upau wa vidhibiti chini ya skrini. Una vitufe vinavyolingana na vidhibiti vya kibodi, pamoja na kitelezeshi cha Kasi na kitelezeshi cha Halisi hadi Ajabu. Kwenye madirisha membamba, vitelezeshi huhamishwa kwenye kiolesura cha chaguo.
Uchunguzi wa kwanza wenye manufaa
- Anzisha onyesho la awali la chanzo au uzalishaji.
- Bonyeza
Sili kuwezesha sauti. - Ruhusu ulimwengu mmoja ukamilike ili uweze kuona kuvuka lango kwa kawaida.
- Bonyeza
Gikiwa mwendo wa kamera haukufurahishi. - Fungua ghala kwa
Ina utafute au upitie mkusanyiko mzima. - Rekebisha Halisi hadi Ajabu ili kuathiri mara ngapi ulimwengu usio wa kawaida huchaguliwa.
- Bonyeza
Hunapokutana na ulimwengu unaotaka kuhifadhi kama kipendwa.
Jinsi malango yasiyo na mshono yanavyofanya kazi

Takriban sekunde moja baada ya kuvuka, injini huchagua ulimwengu unaofuata. Huujenga ulimwengu huo kwa milisekunde chache kwa wakati kati ya fremu zinazoonyeshwa, kisha huandaa mapema vivuli na maumbo yake huku ukiwa hauonekani.
Mahali panapolengwa si onyesho tuli. Kamera ya pili huonyesha ulimwengu unaofuata unaoendelea ndani ya uwazi wa lango katika kila fremu. Muda mfupi kabla kamera haijafika kwenye lango, injini huufanya ulimwengu unaolengwa kuwa ulimwengu wa sasa na kuendelea na safari. Ikiwa maandalizi hayajakamilika, safari ya sasa hupunguza kasi na kusubiri mbele ya lango.
Jinsi ulimwengu huchaguliwa
Kiteuzi huwapa kipaumbele ulimwengu ambao mgeni bado hajauona. Katika ulimwengu wa kwanza kumi na mbili hivi wa ziara, hupendelea ulimwengu ambao mawakala wa tathmini wa mradi waliupa alama za juu zaidi. Kila ulimwengu una daraja la ubora kutoka 1 hadi 5, na madaraja hayo husaidia kuamua ni matukio yapi yanaonekana mapema.

Kiteuzi pia hutafuta utofauti. Kwa kawaida huchagua eneo lengwa linalotofautiana na mazingira ya sasa kwa aina, mwangaza au halijoto. Mipangilio ya Halisi hadi Ajabu hudhibiti mara ngapi maingizo yasiyo ya kawaida zaidi huonekana.
Elewa mpangilio wa mradi
Faili na saraka muhimu zaidi ni:
index.html: Ukurasa wa programu.src/main.js: Vidhibiti vya kibodi, chaguo na upau wa vidhibiti wa chini.src/core: Mifumo ya safari, malango, uteuzi wa ulimwengu, sauti na ubora wa michoro.src/kit: Vipengele vya pamoja vya kujenga ulimwengu kama vile anga, maji, ardhi, mimea, wanyama, majengo na mambo ya ndani.src/worlds: Moduli moja kwa kila ulimwengu, sajili ya ulimwengu na ukumbi wa mwanzo.src/parts: Vipengele vikuu vya mandhari vinavyotumiwa na ulimwengu binafsi.src/extras.js: Orodha za safari, wenzi na mitindo ya sanaa.src/rides,src/companionsnasrc/styles: Utekelezaji wa vitu hivyo vya ziada.src/ui: Msimbo wa ghala na kushiriki, pamoja naui.css, faili pekee la mitindo la tovuti.vendor/three: Maktaba iliyofungashwa ya three.js.thumbs: Picha za vijipicha vya ghala.design: Maandishi ya ulimwengu na majedwali ya kuwasili kwa matoleo yanayosomwa na mchakato wa ujenzi.tools: Hati ya ujenzi na seva ya ndani.
Jinsi moduli ya ulimwengu ilivyoundwa
Ulimwengu ni faili iliyo chini ya src/worlds. Usafirishaji wake chaguo-msingi ni kitu chenye kipengele cha build. Ulimwengu lazima pia usajiliwe katika src/worlds/index.js pamoja na kichwa, aina na maelezo mafupi kwa sababu kiteuzi na ghala husoma orodha hiyo.
Kipengele cha build hurudisha vipengele vitatu muhimu:
- Mandhari ya three.js.
- Njia ya kamera.
- Muda wa safari.
Ulimwengu mwingi huweka kipengele chao kikuu cha mandhari katika faili tofauti chini ya src/parts. Vifaa vya pamoja katika src/kit hutoa vipengele vinavyoweza kutumiwa tena badala ya kuhitaji kila ulimwengu kutekeleza mandhari ya kawaida kivyake.
Mchakato salama wa kuchunguza au kupanua ulimwengu

- Chagua ulimwengu uliopo chini ya
src/worldsunaofanana na aina ya mazingira unayotaka kuelewa. - Fuata uagizaji wake hadi
src/partsnasrc/kitili kuona jinsi mandhari yake inavyoundwa. - Kagua usafirishaji wake chaguo-msingi na kipengele cha
buildili kujifunza muundo halisi wa kitu na kanuni za njia ya kamera za hifadhi hii. - Angalia usajili unaolingana katika
src/worlds/index.jskwa metadata inayohitajika ya kichwa, aina na maelezo mafupi. - Tumia
npm startkwa majaribio ya haraka ya chanzo. - Unda toleo la uzalishaji ili kuthibitisha rasilimali zilizozalishwa za ghala na kushiriki.
Hifadhi hii ni kubwa isivyo kawaida, kwa hiyo kurekebisha ulimwengu wa karibu ni salama zaidi kuliko kujaribu kukisia API ambazo hazijaandikwa au kujenga moduli kutoka mwanzo.
Tabia ya sauti na michoro
Uundaji wa sauti
Kila ulimwengu hupokea akodi ya polepole na kengele kadhaa. Mingi pia hutumia sauti tulivu ya mandharinyuma, kama upepo, maji, sauti ya chumba au mvumo thabiti wa anga. Ulimwengu unaweza kuongeza hadi tabaka tatu zilizochaguliwa kutoka madoido kumi na tisa yanayopatikana, yakiwemo mvua, mawimbi, ndege na kengele za mbali. Injini ya sauti ya kivinjari huunda sauti hizi badala ya kupakia faili za sauti.
Ubora wa michoro otomatiki
Michoro ikiwa imewekwa kwenye Otomatiki, Portals hukadiria kiwango kinachofaa cha ubora kulingana na kadi ya michoro. Kisha huongeza au kupunguza mwonekano wa kuchora ili kusaidia kudumisha safari laini. Kwenye kompyuta mpakato au simu ya zamani, acha Otomatiki ikiwa imewashwa kabla ya kujaribu mipangilio inayohitaji zaidi.
Vidokezo vya kina
Tumia hali ya Upole kwa ufikivu
Bonyeza G ili kudumisha kamera thabiti zaidi na upeo wa macho ulionyooka. Hiki ndicho kipengele cha kwanza cha kujaribu ikiwa safari ya kawaida ya angani inakuletea usumbufu.

Jaribu matoleo ya chanzo na yaliyoundwa
Tumia seva ya chanzo kwa majaribio ya haraka, lakini kagua kila mara muundo wa dist kabla ya kusambaza. Baadhi ya data za maghala, kurasa za maelezo, hakikisho za kushiriki na mipangilio ya upangishaji hupatikana tu baada ya kuunda mradi.
Jaribu utayari wa lango, si mwonekano wa mandhari pekee
Ulimwengu lazima uwe tayari kabla ya kuvuka. Unapobadilisha msimbo wa ulimwengu, fuatilia pia yaklaşaji wa lango lake pamoja na mandhari lengwa yenyewe. Uundaji mzito au utayarishaji wa shader unaweza kusababisha safari ya angani kupungua kasi inapongoja.
Tumia safari kwa mfululizo unaoweza kurudiwa
Portals ina safari 20 zinazoonyesha ulimwengu kwa mpangilio maalumu. Mifano ni pamoja na One Drop of Water, inayosafiri kutoka kwenye jiwe la mvua ya mawe hadi bahari kuu, na Zooming Out, inayoanzia ndani ya seli hai. Mfuatano maalumu ni muhimu unapohitaji uzoefu wenye mwelekeo zaidi kuliko ule unaotolewa na kichagua cha kawaida.
Heshimu mipaka ya hifadhi na faragha
Programu hii haina mfumo wa nyuma na haitumi data ya akaunti, ufuatiliaji, vipendwa au mipangilio kwa seva. Unapotatua matatizo ya vipendwa au tabia ya ulimwengu ulioonekana, kumbuka kuwa thamani hizi huhifadhiwa na kivinjari.
Kagua leseni kabla ya kuchapisha mabadiliko
Hifadhi hii inasambazwa chini ya CC BY-NC-SA 4.0, ikiruhusu kushiriki na kubadilisha kwa matumizi yasiyo ya kibiashara kwa kutoa sifa na kutumia leseni hiyo hiyo. three.js na baadhi ya vitendaji vifupi hutumia masharti tofauti. Soma LICENSE na THIRD-PARTY-NOTICES.txt kabla ya kusambaza upya muundo uliobadilishwa, hasa kwa sababu README inaeleza chimbuko la ziada la shader na vitendaji vya matumizi.
Hitimisho
Portals inaunganisha mandhari za three.js zinazozalishwa kwa taratibu, sauti iliyosanifiwa, michoro inayojibadilisha, uundaji wa ulimwengu wa chinichini na uonyeshaji wa ulimwengu-mbili ili kuunda safari ya kivinjari isiyokatizwa. Unaweza kuchunguza chanzo mara moja kwa kutumia npm start, kuunda tovuti kamili inayoweza kusambazwa kwa npm run build, na kutumia mpangilio wa mradi pamoja na moduli za ulimwengu zilizopo kama mwongozo unapochunguza au kupanua usanifu wake.
