初識生成式藝術&花布作品復刻

110405065
·
(修改过)
·
IPFS
·
W2_回想起高中的一份程式課作品,並將它重製。

這週來到了學期的第二週(雖然在寫這篇週記時實際上已經是第三週了,死線戰士仍然秉持著提早 1 分鐘完成工作就是吃虧的精神而奮鬥至最後一天),各門課程都漸漸開始進入正課,而本週也迎來了區塊鏈應用課程第一次的週記撰寫。

坦白而言,我並不是一個習慣或喜歡寫日記、週記著或任何型態的文字紀錄自己想法的人,尤其還要把想法公開展示出來更令我感到不自在,不過由於是逃不掉的課題,所以(在拖延到最後一天後)我還是決定開始動筆完成這篇週記。

本週課程主要介紹了什麼是生成式藝術,並且實作開通錢包、購買 NFT 作品,我覺得很是新奇,因為我原先對 NFT 的預想是需要經過一連串的繁瑣手續,才能開通帳戶、購買作品,但實際上開通手續意外地簡單,只要用 Google 帳戶就可以一鍵開通。而在課堂上,我也根據老師的建議,買了自己的第一個 NFT —— 由科教館所發行的一隻可愛北極熊。

可愛的北極熊(但 AR 版本不可愛)

不過這是題外話,今天我想分享的主題是本週所介紹的「生成式藝術」,讓我回想起自己高中時的一份作品,並在翻翻找找把它挖出來後,最終成功將它重製的故事。

「生成式藝術」的定義大抵是:
「創作者制定一套算法(或規則、邏輯),而後產生隨機、多樣的作品。」

(參考自:【專訪】程式碼是畫筆、AI是藝術家助手!抽象「生成式藝術」崛起,跟區塊鏈之間有何關係?

這讓我想起在高中一堂程式課中,老師要求期末作業以「創意花布」為題,使用 python 中的 turtle 模組進行繪圖。那時我對於生成式藝術,或甚至連對 NFT 都沒有概念,只是特別著迷於「隨機」的感覺,覺得每次的產出都能獨一無二(或者嚴謹一點說,重複機率微乎其微)是件很神奇並且迷人的事,於是最終在作品中大量使用 random(隨機)功能來繪圖,最終成品如下:

高中程式課的期末專案作品(文末有新版的小圖樣近景圖)

花布中的每個圖案都會在我規範的顏色、線條組合範圍內隨機變化,所以每次生成的花布、小圖案都會不同。而本週所介紹的「生成式藝術」,便讓我回想起高中時的這件作品。雖然那時候我並不知道生成式藝術的概念,但這件作品或許便已具備生成式藝術的特質。

於是我決定嘗試將它重製成 NFT。首先,我先找回了當年的程式碼。當時是使用 repl.it 進行編程的,原帳號早已遺失,不過幸運的是 repl.it 上的作品大多是公開的,於是在平台上挖了一陣後,我終於找到了當初自己繪圖的程式碼。

當初的 python 繪圖程式碼(不過現在似乎已經跑不動了)

由於 NFT 的程式似乎大多是使用 JavaScript 進行編寫,於是我的下一步計畫便是將我的古董 python 程式碼轉為 JavaScript 語法。

正好這學期也修了關於 JavaScript 的課程,於是我先根據課堂所學建了一個網站,並在上面建立一個測試畫布。

在測試網站上建立畫布

接著我嘗試閱讀我原本的 python 程式碼,以期將它轉換為 JavaScript 語法。然而在瞄了幾眼後,我發現我過去的程式碼實在過於瑣碎,並且設了大量變數,使它讀起來實在有億點費解,於是我決定向我一位博學多聞並且友善親切的好友求助:

太好了,合作愉快,G門🙏

在把程式碼微調、放進 VS code 執行後,【復刻.JavaScript 版.花布】很榮幸地成功了!

三次執行結果產出的花布
部分圖樣近景
新版 JavaScript 的程式碼

在看到我高中時的創作重新成功跑起來時,我其實有點小感動,因為已經有很長一段時間我對於這份作品的回憶只剩一張低清的花布全景照片和一段殘缺程式碼的截圖,就算想放大細看各個小圖樣甚至也沒有辦法。這次能成功找回程式碼,並改寫為 JavaScript 成功執行,讓作品再次鮮活起來,真的是太好了~ ⸜( •ᴗ• )⸝

以上便是本週的心得小記,下禮拜希望能把新的花布程式再進一步調整,並鑄造成 NFT 上架!

CC BY-NC-ND 4.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!