← Laika līnija
2021 · Web3 un reāllaika platformas

Ģeneratīvi NFT koki, kas aug

Web3 spēlei es izveidoju kokus, kas aug blokķēdē. Katrs NFT saņem 256 bitu genomu no Chainlink VRF, un mans dekoders to pārvērš koka raksturā: zaru garums un resnums, leņķi, noliekšanās un izliekums, gravitācijas spēks, vainaga blīvums. Tad rekursīvs algoritms uzzīmē koku vokseļu režģī, bloku pa blokam Minecraft stilā, ar 3D simplex troksni vainaga formai un zaru izliekumiem. Katrs augšanas solis, līdz desmit, ir transakcija, un katram zaram ir savs seed, tāpēc koks tieši aug, nevis tiek pārzīmēts: zariņš no iepriekšējā soļa kļūst par zaru un sazarojas tālāk. Attēlā nonāk arī pasaule ap to: vainags sabiezē vai paretinās līdz ar tokena cenu starp soļiem (no Chainlink cenu plūsmas), mizas krāsa nāk no īpašnieka adreses, debesis mainās pa stundu garu dienas un nakts ciklu, lapotnē deg laterniņas, bet īpašnieki, kas tikko bija nobalsojuši par projektu, saņēma zelta vai rozā vainagus. Sākumā attēlus veidoja vokseļu staru izsekotājs, ko piedāvāja studija, ar kuru mani iepazīstināja partneri: es tam sūtīju režģi pēc saskaņota protokola, tas ielika uzdevumu rindā, un es periodiski vaicāju rezultātu. Taču tas zīmēja tikai kubus, bija maksas, un es biju atkarīgs no svešiem serveriem. Tāpēc pārgāju uz Blender: katrs modelis tiek eksportēts GLTF formātā un renderēts serverī ar Blender Cycles, izmantojot Python skriptu, un nu es varēju pievienot jebkādus objektus, zemes plāksnes, kameras un gaismas — uz nobrieduša atvērtā koda dzinēja. Metadatu serviss atdod katra augšanas soļa attēlu. Apmēram mēnesis darba 2021. gada oktobrī, Polygon un BNB Chain. Zemāk redzamos renderus 2026. gadā izveidoju vēlreiz no oriģinālā koda, ar Blender 2.93 un oriģinālo ainu.

TypeScriptNode.jsBlenderChainlink

Video

Video

Attēli

Divpadsmit nejauši genomi, katrs savā pēdējā augšanas solī.