這個演講是在Clojure/conj2018上進行的,重點是關于實踐生成藝術的一些有趣的問題,這些技術已經運用在NFT上進行了。
歡迎大家。謝謝你。非常感謝你們的到來。我很高興能談論一個我真正喜歡的話題,那就是藝術作品,具體來說,我將談論通過編程創作的藝術作品:你可以稱之為生成藝術作品。本次演講不會像制作生成藝術作品那樣提供技術實踐指南,而是對圍繞實踐出現的一些有趣哲學問題的探索。生成藝術是一種相對較新的媒介,它與之前的一些傳統藝術形式有很大的不同,所以有很多我認為非常有趣的新問題,它們與我們程序員特別相關,我將花一些時間談論我的實際軟件設置,以及我使用的工具。
我制作的藝術品通常沒有輸入。它不是任何類型的數據可視化或圖像處理。生成圖像所需的一切都包含在程序本身中,無論程序輸出什么,都是最終產品。通常,我將數字圖像作為最終產品,但我并不嚴格這樣做。有時我闖入物理世界,我會創造這樣的東西,這是一幅繪圖儀畫。這是一幅真正的畫,但它是用繪圖儀創作的,這是一個簡單的機器人,我稍后會講到。我主要使用抽象圖像,但最近我一直在嘗試集成手繪組件,所以我編寫了一個自定義界面,允許我使用通過Wacom平板電腦進行數字繪制的輸入作為算法的起點。在這種情況下,我繪制了一個圖形的輪廓,并將其傳遞給從那里接管的算法,并將其分解為不同的形狀,并分配所有顏色和細節,但主要是這個是我在過去五年左右的時間里一直在做的東西。
以下是我正在使用的工具:我正在使用Quil,它是一個Clojure庫。它是另一個名為Processing的Java庫的包裝器,我認為它已經存在了10或15年。處理是一種基本的圖形庫。它有一個相對簡單的API來處理形狀、線條和圖像。Processing最初是作為一種Java庫編寫的,它有自己奇怪的IDE,但您可以使用Quil用Clojure包裝它。處理也被移植到JavaScript,而Quil也通過ClojureScript包裝了它。您可以選擇要使用的平臺。
TreasureDAO宣布將全面審查代碼,修復漏洞后重新部署NFT交易市場:3月3日,TreasureDAO 團隊在其 Discord 發布公告稱,Treasure NFT 交易市場現已凍結交易,團隊現在正全面審查代碼,并著手修復漏洞,待確定漏洞完全修復后,會重新部署交易市場上線。
針對受到損失的用戶,團隊正在研究補償多種方案,將由社區投票決定最終方案。
此前報道,Treasure NFT 交易市場發現漏洞,攻擊者可以以 0 MAGIC 價格購買上架的 NFT。[2022/3/3 13:34:28]
這只是一個非常簡單的程序,可以讓您了解設置它的樣子。鍋爐板很少。這個程序不會畫任何特別有趣的東西。這只是圖像周圍的一堆亂七八糟的線條,但這樣做的好處是您可以直接開始創建圖像,而且API相對簡單。
在底部,我得到了(begin-shape)、一堆對(vertex)的調用,然后是(end-shape),這就是我使用這些API的方式的90%。偶爾,我會做一些更高級的東西,比如圖層和蒙版,但這是它的核心。您可以將系統用作矢量圖形或光柵圖形,因此您可以訪問實際的像素陣列。您可以選擇要使用的不同渲染器。您可以在2D或3D中工作,盡管我自己更喜歡在2D中工作。你可以用這個做動畫,所以最重要的是我有一個調用來阻止它這樣做,但通常它會為每一幀重復調用一次繪制,所以你可以刷新和重繪,所以人們創建動畫那樣。他們還以這種方式創建交互式軟件。你可以接受鍵盤輸入、鼠標輸入、Wacom數位板,它那么為什么我為此選擇了Clojure?
一旦我發現實際上有用于此的工具,它就會變得更好。不幸的是,我從Matplotlib開始,它使用起來和你想象的一樣痛苦,但Clojure好得多,我認為主要原因是創建視覺圖像實際上是一種數據處理。您正在處理這些形狀、曲線、點、像素。所有這些都非常方便地表示為簡單的數據結構,因此它非常好地映射到在簡單數據結構上設置這些數據轉換管道的典型Clojure風格的操作。它非常適用于這個領域,它也非常適用于音頻,所以有像Overtone這樣的Clojure庫可以讓你制作生成音頻,而且它們也能很好地工作。
當然,在座的所有人都知道Clojure編寫速度很快,這就是我認為我們都喜歡它的原因之一,但尤其是對于藝術品,你們并沒有真正預先規劃這種架構。你更像是一種探索性的實驗模式,只是把東西塞進去,然后運行它看看它的樣子。因此,尤其是與REPL集成后,您可以在其中重新加載模塊并重新運行代碼,從而形成一個非常緊密的反饋循環,非常適合此類探索性工作。當然,與其他Lisp方言相比,Clojure的一大優勢是您可以訪問JVM,這既是一項出色的工程,也是一個出色的生態系統。那里有您隨機需要的所有這些Java庫,而且不必每次都從頭開始編寫所有內容,這很好。當然,JVM的性能相對較高。它適用于大堆大小。
以太坊 DApp 瀏覽器 MetaMask 擬于 11 月進行重大代碼更改,以簡化 API:以太坊 DApp 瀏覽器 MetaMask 計劃從今年 11 月 16 日起進行重大代碼更改,例如,停止注入「window.web3」,對「window.ethereum」API 進行重大更改,以簡化化 MetaMask API 和為用戶提供更快速、更可靠的服務。[2020/8/16]
如果您發現自己需要優化一堆數組操作,您可以使用Java,并且非常容易地做到這一點,盡管我發現這非常不常見。當然,如果你真的想部署到瀏覽器,你可以通過ClojureScript來實現。如果您正在制作交互式軟件,您開始必須處理可能并發操作的共享狀態,因此原子和代理的標準Clojure工具包,尤其是代理,往往對這種工作方式很有用,您還要小心不要阻塞動畫線程,所以像core.async這樣的工具對于做這種風格的工作非常方便。最后一點有點推測性,但我覺得擁有更靈活的語言會讓你在做這類創造性工作時有更好的心態。
所以,在我從事生成藝術作品的這幾年里,有一些大問題,我花了很多時間思考,而這些問題的答案并不是那么簡單。也許這并不奇怪,但我認為它們會產生一些有趣的東西。所以,我想說的第一個是如何通過編程制作有趣的藝術品。我的意思是,這真的是生成藝術作品的關鍵。但是,我需要小心我在這里所說的話:“有趣的藝術”是一個沉重的術語。這究竟是什么意思?它可能意味著很多事情。藝術可以有很多有趣的方式,但我認為這里的一個相對屬性是好的藝術以某種方式做我們沒有預料到的事情。它有能力給我們帶來驚喜或教給我們一些新的東西,或者從不同的角度看待事物。這就是好的藝術與工藝的區別。但是,我們也有理解藝術品的需要。
我們真的不喜歡它,如果我們不能把我們的頭環繞在它周圍。有些藝術品可能難以消化,這沒關系,但最終我們希望感覺這幅藝術品背后有某種意義、結構或組織。它不能只是隨意地捆綁在一起。即使我們不能對它形成理性的理解,我們也必須對藝術品有某種直觀的理解才能欣賞它。那么,如果我們欣賞未曾預料到的藝術,這是否會讓我們在編程時陷入困境?編程是使其成為有用工具的優勢之一,它是非常可預測的。我們可以編寫這些系統,讓我們了解在任何給定狀態下會發生什么,并且除非出現任何類型的錯誤,否則這是一種非常可預測的工作方式。
這似乎與我們制作不可預測的藝術品的愿望相沖突,但是很多生成藝術家已經非常成功地解決了這個問題,所以我將討論一些解決方法。我自己的方法,以及我遵循的幾位藝術家似乎也使用的方法,實際上是一種編程風格,它更像是一種指導方針,而不是對應該創建什么的準確描述。在這里給你一個直觀的例子,這些是從同一個程序創建的兩個圖像:
PlatON完成以太坊2.0 PoC的MPC設計和第一階段代碼實現:近日,PlatON正式完成以太坊2.0 Proof of Custody方案(以下簡稱PoC)中的安全多方計算(以下簡稱MPC)算法的設計和第一階段代碼的實現,并于GitHub開源。
以太坊2.0的設計方案是以一條信標鏈(Beacon Chain)連接多條平行的分片鏈的架構運行,每條分片鏈之間相對獨立,并且由一部分驗證人(Validator)組成的委員會(Committee)進行出塊。由于這些驗證人之間相互獨立,所以在協同運轉時勢必存在數據可用性問題(Data Availability)。
為解決該問題,以太坊2.0提出了PoC解決方案,該方案要求驗證人節點在提交區塊的時候,需要附帶一個“擁有數據的證明”。為防止單點故障并減少驗證人的委托成本,PoC的整體設計目標中包括了對MPC的兼容。此外,通過MPC可以建立無需信任的委托池(Trustless Staking Pools),并有可能基于此衍生新的Staking 模式。
基于該設計目標,以太坊通過以太坊基金會資助的形式,邀請到PlatON參與了PoC的MPC設計和代碼實現。[2020/4/8]
沒有任何代碼更改,只需多次運行它,我就會得到兩個完全不同的結果,但它們在某些方面似乎仍然在美學上非常相關。幾乎沒有一個像素匹配,但不知何故它們綁在一起。實現這一點的方法是非常有選擇地、非常小心地使用隨機性,從高級結構到精細細節,以及顏色選擇等元素。
該算法主要基于一種遞歸三角形細分,隨機性用于做一些事情,例如不是完美地分割每個三角形,它可能會稍微偏離中心或使用曲線而不是直線。它可能會在某些區域遞歸到一個深度,而在其他區域則不會,并且它試圖以一種有趣的方式保持這些分布。顏色可能會從一個父三角形繼承到它的子三角形,但它也可能以各種概率隨機切換到另一種顏色,所以這真的是......程序是我在朝著某個方向推進,但沒有明確地布置需要什么發生。我仍在努力為程序留出空間,以讓我感到意外的結果,這只是一種引導隨機性。
我非常喜歡另一位藝術家。他的名字對我來說很難發音,所以我會避免對其進行屠殺,但我在這里有兩張圖片,我相信它們來自同一個程序:
分析 | 僅靠10行代碼 easyinvest吸金超5000ETH:獵豹旗下大數據評級機構RatingToken的數據監測顯示,easyinvest在以太坊上的智能合約32天共產生了近萬筆交易,吸金超過5000ETH。easyinvest的代碼極為簡單,兩個參數和一個回調函數。用戶將ETH轉入合約地址,然后每天返利4%,想取返利的時候,轉入0 ETH,累計已獲得的返利就會轉入用戶的ETH地址。由于源源不斷的有用戶買入,所以返利還在持續,最早買入的用戶已經盈利接近30%。RatingToken團隊認為,easyinvest展示了以太坊為代表的區塊鏈作為信任機器的巨大能力,但同時也讓我們看到了以太坊的困境,因為easyinvest本質上還是不能脫離零和金字塔游戲的窠臼,并沒有產生多大的實際價值。詳情見原文鏈接。[2018/10/9]
同樣,您可以看到,即使它們完全不同,它們也保持了這種美學一致性,因此這是一種流行的工作方式。您可以找到其他藝術家似乎采用這種方法。還有一些非常不同的方法往往依賴于更多的涌現屬性和涌現結構,所以我在這種情況下所說的涌現是指你有一套非常簡單的規則,看起來不會做任何有趣的事情,但是如果你隨著時間的推移反復運行它,這些大型超級結構開始出現,你無法僅通過查看規則來預測。
其基礎確實與混沌理論有關,混沌系統的一個非常簡單的例子是三重擺。這基本上是三個相互連接的鐘擺。盡管這些對象本身是非常可預測的對象,但當您將它們組合起來時,您最終會得到混亂的系統,這意味著初始狀態的任何微小差異都會導致最終結果的巨大差異。
所以,我在這里欣賞JonathanMcCabe的一些非常好的藝術品。他正在研究一種高級形式的元胞自動機。很多人可能知道那是什么,但對于那些不知道的人,也許你聽說過康威的生命游戲,這是一種元胞自動機。本質上,您有一個包含單元格的網格,這些單元格可以打開或關閉,并且您可以逐步執行,并且有一些簡單的規則來控制單元格何時打開和關閉,就像它們有一定數量的鄰居打開一樣,它們“將在下一步。
GitHub代碼活躍度排名:LSK、KMD、EOS位列前三:據CryptoMiso數據,過去3個月內GitHub代碼活躍度排名前十的分別為:LSK、KMD、EOS、TRX、ZRX、RHOC、NAS、NULS、GNT和BURST。NULS再次躋身前十。全部上榜的294個幣種中,BTC排名第25,上升一位;ETH排名第40,ETC排名第37,BCH排名第54,XRP排名第98,LTC排名第152。[2018/3/25]
這是一個更復雜的系統。這就是他所說的多尺度圖靈模式,所以他使用元胞自動機,一種用于宏觀尺度特征,一種用于更詳細的特征,但這里的輸出種類繁多,每一個這個程序的輸出看起來完全不同。它真的很狂野,但它仍然具有我們仍然以某種方式理解的這種連貫結構。這是非常了不起的。
另一種常見的方法有點像元胞自動機,但沒有網格,還有一些比細胞更復雜的東西,所以在這種情況下,我們有我所說的在系統內移動的代理或演員,并在某些方面影響它大大地。而且這些也往往相互交互,所以如果兩個代理發生碰撞,也許他們會改變他們正在繪制的顏色。你可以用簡單的規則來設置這些,就像使用元胞自動機一樣,你運行很多步驟,它構建了這個復雜的圖像。這對于動畫也非常有效,但這只是一個靜止的。
最近的發展之一是機器學習。我認為神經學是一個很好的術語。這是馬里奧·克林格曼(MarioKlingemann)制作的藝術品,我這里有他的一些作品。這件藝術品是用一種叫做GAN的東西制作的,一種生成對抗網絡。它是一種神經網絡,并以特定的風格進行訓練,但實際上藝術家在使用這些時所擁有的兩個杠桿是,首先是訓練集,因此是訓練網絡所針對的圖像集合。他們的另一個真正的控制點是目標函數。所以這就是網絡如何給自己打分或給自己打分來判斷它是否做得很好,以及它應該如何改變以做得更好,但是這些變化非常多。這只是他所做的最小的一瞥。我絕對建議檢查更多。
這些藝術作品風格都大不相同,但我認為將它們聯系在一起的共同點是它們在混合隨機性和結構方面做得非常出色。他們能夠在兩者之間保持這種平衡,直到它仍然令人驚訝和不可預測,但他們仍然有某種類型的秩序,即使只是憑直覺我們也能理解。有一張圖片對我來說非常清楚地表明了這一點,這是JohnGreene的作品,他制作了瓷磚藝術品:
顯然,像這樣的平鋪系統是非常有序的,但他還設法以創造出許多非常漂亮的多樣性的方式引入了隨機性。所以,我認為我們可以滿意地回答“你如何用編程制作有趣的藝術?”的問題。我們可以說這是可能的。通過編程創造令人驚訝的結果有不同的方法。
所以,我猜下一個真正有趣的問題更多地與生成藝術的哲學以及它的未來發展方向有關。我們可以將我們的美學轉化為代碼,對吧。當我編寫這個程序時,我試圖做的是以某種方式將我喜歡的東西編碼到程序中,而不是讓它變得非常精確,但藝術是一種非常直觀的實踐。它由很多直覺和直覺指導,您可能會做出關于該做什么的虛假決定,而編程幾乎與此相反。這是非常明確的。它非常有序。它很有條理。所以,這是一個非常不尋常的嘗試混合,加入這些東西。因此,許多生成藝術家開始懷疑:
我要把這個問題縮小到顏色。想象一下,您的任務是創建一個程序,為圖像中的每個形狀挑選顏色以產生令人愉悅的效果。這似乎是一項可行的任務。顏色是一個三維空間,非常簡單。但是當你深入研究時,會發現這種顏色是極其相關的。任何一種顏色都會受到周圍所有顏色的影響,并且會受到這些顏色的接近程度的影響,并且會受到它們大小的影響。不僅如此,顏色對我們來說還具有所有這些文化內涵。我們將顏色與不同的情緒聯系起來。我們將顏色附加到對象、位置甚至時間段上。真正優秀的藝術家會以意想不到的方式或諷刺的方式使用顏色,所以很明顯顏色實際上不僅僅是一個三維空間。
我的意思是,真正做到這一點只需要強大的人工智能,在這一點上,藝術的定義變得比現在更加模糊。馬特·皮爾森有一個有趣的短篇小說,它談到有人在寫一個AI藝術家。我建議檢查一下。所以,我認為,這個問題的答案,我們是否可以將我們的美學轉化為代碼,我們是否可以做到這一點,但不是全部。它必須是藝術家和節目之間的合作,這沒關系。
所以,最后一個問題,也許是最重要的問題,為什么要這樣做?為什么用代碼做藝術?我認為最直接的答案基本上就是它很有趣。我們將所有時間都花在使用功能非常強大的工具來開發這些極其復雜的技能上,但我們很少以有趣的方式使用它。
你們中有多少人真正坐下來,沒有預定目標地編寫代碼?是的......就像你們五個人一樣,對于你們中的少數人來說可能非常罕見。這不是我們通常會做的事情,我認為我們真的應該這樣做。不時不時用這些技能做有趣的事情是一種浪費。除了藝術上的挑戰之外,做這種類型的工作還有很多有趣的工程挑戰。
如果你想寫出非常快的代碼,你可以編寫一個實時GPU著色器,這些東西的吞吐量非常高。如果您喜歡高效的緊湊代碼,那么可以使用演示場景藝術作品,這些作品都是關于從難以置信的小可執行文件中生成內容的。這是一個適合4KB可執行文件的整個世界。這只是一個視頻的靜止圖像。這是一個完整的地形,有山,有氣味,有云,有海洋,非常令人興奮。
如果你喜歡機器人,我們有機器人。有些人拿到了這些瘋狂的九軸工業東西,并畫了肖像。我必須用一個簡單的三入口機器人來滿足自己。
這是一個AxiDraw。它是由加利福尼亞州的一家小公司制造的。我將它用于素描和繪畫,但有時能夠在物理世界中做一些事情真的很棒。這確實是一個未被充分探索的空間,所以如果你喜歡做某事,成為第一個做某事的人,這里真的很容易。您幾乎可以在很短的時間內向任何方向行走,并且您處于新的肥沃土壤中。就動機而言,這真的很棒。只需幾個小時的工作,您就可以獲得一些即時的視覺反饋。l這可能是糟糕的反饋,但并非總是如此。您通常會享受您所創造的東西,因此這不是一個需要數月或數年才能達到滿意效果的項目。至少對于我這種性格來說,擁有這種動機是有用的。
我認為不言而喻:你根本不會做這些。
我稍微談到了這一點,但老實說,我們應該能夠享受我們開發的這些技能的樂趣。我們真的沒有充分的理由不這樣做。我認為我們應該養成經常放松一點的習慣。但是,更嚴肅地說,我確實覺得我們實際上應該為社會花一些時間和精力在這些事情上。我們對技術和編程有一定的了解,而世界上大多數人都沒有。我的意思是,對大多數人來說,這對他們來說完全是個謎,而藝術品有時可以彌合這種差距。
例如,考慮最先進的機器學習。如果我去街上找人,問他們“最先進的機器學習算法的優點和缺點是什么?”,他們不知道。對這里的一些人來說,這甚至可能很難回答。但是,如果我讓他們聽一小段由機器學習算法創作的音樂,或者讓他們閱讀由這些算法生成的一首詩,或者看一件藝術品,他們會很快并直觀地了解它發生了什么。他們將能夠聽到。好吧,也許它可以得到正確的細節。它可以以令人愉悅的方式將這些簡短的音符序列串在一起,但它忽略了更大的圖景。它沒有任何戲劇性。沒有故事。沒有緊張。
我認為同樣的直覺理解不僅可以發生在這個機器學習案例中,還可以發生在通過編程創建的各種藝術作品中。我認為有一個教育方面,一個很重要的溝通方面。生成藝術也傾向于向我們解釋關于世界的事物,因為宇宙本身是生成的,它基于定律和概率。這些導致某些模式、涌現模式和生成藝術作品大量處理模式。因此,無論有意與否,生成性藝術作品經常會偶然發現我們在世界上發現的一些相同模式。所以,一個很酷的例子是貝殼。我不知道它是什么物種,但外殼恰好,那里的圖案恰好非常,非常類似于StephenWolfram創建稱為Rule30的元胞自動機,只是它有一些小故障。但這些東西如何反映在自然界中真的很了不起。
為了深入探討哲學的深層次,我認為生成性藝術作品也說明了我們作為人類的一些重要信息。藝術從根本上來說是關于在很多方面做人。當我們嘗試編寫關于藝術作品的規則時,我們試圖做出更明確的嘗試來描述我們欣賞藝術作品的內容。而這種方法很快就暴露了其自身的局限性。藝術作品的復雜性和高維度變得非常清晰,程序工作方式與人類工作方式之間的差距變得更加明顯。我們開始看到,也許這些程序可以解決制作藝術品的“方式”,但它們不能真正解決“為什么”,因此它強調了“為什么”在藝術品中的重要性,以及我們如何作為人類。
所以,我認為這種生成藝術的方法,至少對我來說,揭示了很多關于人類生活的本質。我想說的最后一部分是,任何沒有藝術品的文化都是反烏托邦。您希望藝術品屬于任何健康的文化。藝術鼓勵發現。它鼓勵反思、交流和對生活的欣賞。鑒于編程基本上正在吞噬世界——它每天都變得越來越重要,我們的生活越來越多地被技術所包圍——我們需要確保我們接受藝術的重要性,我們投入一些如果我們想確保在邁向未來時為我們所有人建立一種健康的文化,我們將花費我們的時間和精力來享受它并創造它。
這就是我對這些問題的最佳答案。我希望你們中的一些人會想更多地了解生成藝術品或自己制作一些藝術品。有了這個,我會說謝謝。
——前言—— 我們已經了解到分布式系統一般通過狀態復制機原理來實現一致性。其核心思想是系統中所有副本運行著相同的狀態機,只要所有副本都以相同的初識狀態開始,并基于相同的初識狀態執行一組相同順序的.
1900/1/1 0:00:00亞馬遜年底接受比特幣支付的事情,被確認為假消息。昨天因為所謂的內部人員傳出亞馬遜年底將接受比特幣支付,市場走了一波不錯的行情,市場情緒也相當不錯,然而就在今天早上凌晨,該消息就被打臉.
1900/1/1 0:00:00社區對于國家和百姓生活的重要性毋庸置疑,它不僅是城市居民共同生活的家園,更是整個“國家大廈”的根基.
1900/1/1 0:00:00一個CryptoPunks像素頭價值數百萬美金,最貴的BoredApe價值超過1000個以太坊......加密藝術品的火爆,也造就了OpenSea與Element這樣的NFT加密藝術交易平臺.
1900/1/1 0:00:00項目介紹 《MyNeighborAlice》是一款多人建造經營類游戲,所有玩家都可以購買并擁有屬于自己的虛擬島嶼。除此之外,玩家還可以收集和創造新奇的物品,并在島嶼上結識新朋友.
1900/1/1 0:00:00加入PolkaWorld社區,共建Web3.0!請注意,這不代表波卡官方的觀點,僅從客觀的角度來分析Auction的時間!Kusama網絡當前處于第14個Lease.
1900/1/1 0:00:00