โค้ดเข้ามา งานศิลปะออกมา ทุกคนคือศิลปิน NFT

การบรรยายนี้จัดขึ้นที่ Clojure/conj 2018 และเน้นไปที่ประเด็นที่น่าสนใจเกี่ยวกับการฝึกเจนเนอเรทีฟอาร์ต เทคนิคต่างๆ ที่ใช้ในNFTดำเนินการ.
ยินดีต้อนรับทุกคน ขอบคุณ ขอบคุณมากสำหรับการมา ฉันตื่นเต้นที่จะพูดคุยเกี่ยวกับหัวข้อที่ฉันรักจริงๆ ซึ่งก็คืองานศิลปะ และโดยเฉพาะอย่างยิ่ง ฉันจะพูดถึงงานศิลปะที่สร้างขึ้นผ่านการเขียนโปรแกรม: สิ่งที่คุณอาจเรียกว่างานศิลปะเชิงสร้างสรรค์ การบรรยายนี้จะไม่ให้คำแนะนำเชิงปฏิบัติเชิงเทคนิค เช่น การสร้างงานศิลปะเชิงกำเนิด แต่เป็นการสำรวจคำถามทางปรัชญาที่น่าสนใจบางประการที่เกิดขึ้นจากการปฏิบัติ เจเนอเรทีฟอาร์ตเป็นสื่อที่ค่อนข้างใหม่ และแตกต่างจากศิลปะดั้งเดิมบางรูปแบบที่มีมาก่อน จึงมีปัญหาใหม่ๆ มากมายที่ฉันคิดว่าน่าสนใจมาก และเกี่ยวข้องกับโปรแกรมเมอร์ของเราโดยเฉพาะ และ ฉันจะใช้เวลาพูดคุยเกี่ยวกับการตั้งค่าซอฟต์แวร์จริงของฉัน และเครื่องมือที่ฉันใช้




งานศิลปะที่ฉันทำมักจะไม่มีการป้อนข้อมูล มันไม่ใช่การแสดงข้อมูลหรือการปรับแต่งภาพใดๆ ทุกสิ่งที่จำเป็นในการสร้างอิมเมจมีอยู่ในตัวโปรแกรมเอง และอะไรก็ตามที่โปรแกรมส่งออกไปคือผลลัพธ์สุดท้าย โดยปกติแล้ว ฉันทำงานกับภาพดิจิทัลเป็นผลงานขั้นสุดท้าย แต่ฉันไม่ได้เคร่งครัดขนาดนั้น บางครั้งฉันหลุดเข้าไปในโลกทางกายภาพ และสร้างสิ่งนี้ขึ้นมา ซึ่งเป็นภาพวาดพล็อตเตอร์ มันเป็นภาพวาดจริง ๆ แต่มันถูกสร้างขึ้นด้วยพลอตเตอร์ ซึ่งเป็นหุ่นยนต์ธรรมดา ๆ ที่ฉันจะพูดถึงในภายหลัง ฉันทำงานกับภาพแอ็บสแตร็กเป็นส่วนใหญ่ แต่เมื่อเร็วๆ นี้ฉันได้พยายามผสานรวมส่วนประกอบที่วาดด้วยมือ ดังนั้นฉันจึงเขียนอินเทอร์เฟซแบบกำหนดเองที่อนุญาตให้ฉันใช้อินพุตของภาพวาดดิจิทัลผ่านแท็บเล็ต Wacom เป็นจุดเริ่มต้นสำหรับอัลกอริทึม ในกรณีนี้ ฉันวาดโครงร่างและส่งต่อไปยังอัลกอริทึมที่รับช่วงต่อจากนั้นแยกออกเป็นรูปร่างต่างๆ และกำหนดสีและรายละเอียดทั้งหมด แต่โดยหลักแล้ว [ภาพสุดท้าย] นี้คือสิ่งที่ฉันได้รับ ทำงานในช่วงห้าปีที่ผ่านมาหรือมากกว่านั้น
นี่คือเครื่องมือที่ฉันใช้: ฉันใช้ Quil ซึ่งเป็นห้องสมุด Clojure มันห่อหุ้มไลบรารี Java อื่นที่เรียกว่าการประมวลผลซึ่งฉันคิดว่ามีมาประมาณ 10 หรือ 15 ปีแล้ว การประมวลผลเป็นไลบรารีกราฟิกพื้นฐาน มี API ที่ค่อนข้างง่ายสำหรับการทำงานกับรูปร่าง เส้น และรูปภาพ เดิมการประมวลผลถูกเขียนเป็นไลบรารี Java ที่มี IDE แปลก ๆ ของตัวเอง แต่คุณสามารถรวมไว้ใน Clojure โดยใช้ Quil การประมวลผลยังถูกพอร์ตไปยัง Java Script และ Quil ก็รวมไว้ใน ClojureScript เช่นกัน คุณสามารถเลือกแพลตฟอร์มที่คุณต้องการใช้

เป็นเพียงโปรแกรมง่ายๆ ที่จะช่วยให้คุณเข้าใจว่าการตั้งค่าเป็นอย่างไร แผ่นหม้อต้มมีน้อยมาก โปรแกรมนี้ไม่ได้ดึงอะไรที่น่าสนใจเป็นพิเศษ มันเป็นเพียงเส้นที่สับสนรอบรูปภาพ แต่สิ่งที่ดีเกี่ยวกับสิ่งนี้คือคุณสามารถเริ่มสร้างรูปภาพได้ และ API นั้นค่อนข้างง่าย
ที่ด้านล่าง ฉันได้รับ (รูปร่างเริ่มต้น) การเรียกจำนวนมากไปยัง (จุดสุดยอด) และจากนั้น (รูปร่างสิ้นสุด) ซึ่งเป็น 90% ของวิธีที่ฉันใช้ API เหล่านี้ ในบางครั้ง ฉันจะทำสิ่งที่ก้าวหน้ากว่านี้ เช่น เลเยอร์และมาสก์ แต่นั่นคือหัวใจหลักของมัน คุณสามารถใช้ระบบเป็นกราฟิกแบบเวกเตอร์หรือกราฟิกแบบแรสเตอร์ ดังนั้นคุณจึงสามารถเข้าถึงอาร์เรย์พิกเซลจริงได้ คุณสามารถเลือกตัวเรนเดอร์อื่นที่จะใช้ได้ คุณสามารถทำงานแบบ 2 มิติหรือ 3 มิติได้ แม้ว่าฉันจะชอบทำงานแบบ 2 มิติมากกว่า คุณสามารถทำแอนิเมชั่นด้วยสิ่งนี้ เหนือสิ่งอื่นใด ฉันมีการเรียก (ไม่วนซ้ำ) เพื่อหยุดไม่ให้ทำอย่างนั้น แต่โดยปกติแล้ว การเรียกวาดซ้ำๆ สำหรับแต่ละเฟรม ดังนั้นคุณจึงสามารถรีเฟรชและวาดใหม่ ดังนั้นผู้คนจึงสร้างแอนิเมชั่นแบบนี้ พวกเขายังสร้างซอฟต์แวร์โต้ตอบด้วยวิธีนี้ คุณสามารถรับการป้อนข้อมูลด้วยแป้นพิมพ์ การป้อนข้อมูลด้วยเมาส์ แท็บเล็ต Wacom เหตุใดฉันจึงเลือก Clojure สำหรับสิ่งนั้น
มันดียิ่งขึ้นเมื่อฉันพบว่ามีเครื่องมือสำหรับสิ่งนี้จริง ๆ น่าเสียดายที่ฉันเริ่มด้วย Matplotlib ซึ่งใช้งานยากพอๆ กับที่คุณจินตนาการได้ แต่ Clojure นั้นดีกว่ามาก และฉันคิดว่าเหตุผลหลักก็คือการสร้างภาพที่มองเห็นได้นั้นแท้จริงแล้วคือการประมวลผลข้อมูลชนิดหนึ่ง คุณกำลังจัดการกับรูปร่าง เส้นโค้ง จุด พิกเซลเหล่านี้ ทั้งหมดนี้แสดงอย่างสะดวกมากด้วยโครงสร้างข้อมูลอย่างง่าย ดังนั้นจึงแมปได้ดีกับการดำเนินการสไตล์ Clojure ทั่วไปในการตั้งค่าไปป์ไลน์การแปลงข้อมูลเหล่านี้บนโครงสร้างข้อมูลอย่างง่าย มันใช้ได้กับพื้นที่นี้มาก และยังใช้ได้กับเสียงด้วย ดังนั้นจึงมีไลบรารีของ Clojure เช่น Overtone ที่ให้คุณสร้างเสียงแบบสร้างสรรค์ และมันทำงานได้ดีมาก
แน่นอน ทุกคนที่นี่รู้ดีว่า Clojure เขียนได้เร็ว และนั่นคือหนึ่งในเหตุผลที่ฉันคิดว่าเราทุกคนชอบมัน แต่โดยเฉพาะอย่างยิ่งกับงานศิลปะ คุณไม่ได้วางแผนสถาปัตยกรรมนั้นไว้ล่วงหน้า คุณเป็นมากกว่าโหมดการทดลองเชิงสำรวจ เพียงเสียบปลั๊กและเรียกใช้เพื่อดูว่ามันเป็นอย่างไร โดยเฉพาะอย่างยิ่งกับการผสานรวมกับ REPL ซึ่งคุณสามารถโหลดโมดูลซ้ำและรันโค้ดซ้ำได้ มันเป็นวงจรป้อนกลับที่แน่นมากซึ่งเหมาะสำหรับงานสำรวจประเภทนี้ แน่นอนว่าข้อได้เปรียบที่สำคัญอย่างหนึ่งของ Clojure เหนือภาษา Lisp อื่นๆ ก็คือคุณสามารถเข้าถึง JVM ซึ่งเป็นทั้งงานวิศวกรรมชิ้นเยี่ยมและระบบนิเวศที่ยอดเยี่ยม เป็นเรื่องดีที่มีไลบรารี Java เหล่านี้ทั้งหมดที่คุณต้องการแบบสุ่มและไม่ต้องเขียนทุกอย่างตั้งแต่เริ่มต้นทุกครั้ง แน่นอนว่าประสิทธิภาพของ JVM นั้นค่อนข้างสูง ใช้งานได้ดีกับฮีปขนาดใหญ่
หากคุณเคยพบว่าตัวเองต้องการเพิ่มประสิทธิภาพการทำงานของอาร์เรย์หลายๆ ชุด คุณสามารถใช้ Java และทำได้อย่างง่ายดาย แม้ว่าฉันจะพบว่าสิ่งนี้เป็นเรื่องแปลกมากก็ตาม แน่นอน หากคุณต้องการปรับใช้กับเบราว์เซอร์จริงๆ คุณสามารถทำได้ผ่าน ClojureScript หากคุณกำลังสร้างซอฟต์แวร์เชิงโต้ตอบ คุณเริ่มต้องจัดการกับสถานะที่ใช้ร่วมกันที่อาจทำงานพร้อมกัน ดังนั้นชุดเครื่องมือ Clojure มาตรฐานของอะตอมและตัวแทน โดยเฉพาะอย่างยิ่งตัวแทน มักจะมีประโยชน์สำหรับวิธีการทำงานนี้ คุณยังต้องเป็น ระวังอย่าบล็อกเธรดแอนิเมชัน ดังนั้นเครื่องมืออย่าง core.async จึงมีประโยชน์มากในการทำงานลักษณะนี้ ประเด็นสุดท้ายนั้นเป็นการคาดเดาเล็กน้อย แต่ฉันรู้สึกว่าการมีภาษาที่ยืดหยุ่นมากขึ้นจะทำให้คุณมีกรอบความคิดที่ดีขึ้นเมื่อทำงานสร้างสรรค์ประเภทนี้

ดังนั้น ในช่วงไม่กี่ปีที่ผ่านมา ฉันได้ทำงานเกี่ยวกับเจนเนอเรทีฟอาร์ต มีคำถามสำคัญบางข้อที่ฉันใช้เวลาคิดมากมาย และคำตอบของคำถามเหล่านั้นก็ไม่ง่ายอย่างนั้น อาจจะไม่น่าแปลกใจ แต่ฉันคิดว่าพวกเขาสร้างสิ่งที่น่าสนใจ ดังนั้นสิ่งแรกที่ฉันอยากจะพูดถึงคือวิธีการสร้างงานศิลปะที่น่าสนใจโดยใช้โปรแกรม ฉันหมายความว่านั่นคือกุญแจสำคัญในการสร้างสรรค์งานศิลป์ อย่างไรก็ตาม ฉันต้องระวังสิ่งที่ฉันพูดที่นี่: "ศิลปะที่น่าสนใจ" เป็นคำที่หนักแน่น สิ่งนี้หมายความว่าอย่างไร อาจมีความหมายหลายอย่าง ศิลปะสามารถน่าสนใจได้หลายวิธี แต่ฉันคิดว่าคุณสมบัติที่เกี่ยวข้องในที่นี้คือศิลปะที่ดีทำสิ่งต่าง ๆ ในแบบที่เราไม่คาดคิด มีความสามารถในการทำให้เราประหลาดใจหรือสอนเราในสิ่งใหม่ๆ หรือมองเห็นสิ่งต่างๆ จากมุมมองที่ต่างออกไป นี่คือความแตกต่างระหว่างงานศิลปะและงานฝีมือที่ดี แต่เราต้องเข้าใจงานศิลปะด้วย
เราไม่ชอบเลยถ้าเราไม่สามารถคาดศีรษะได้ งานศิลปะบางชิ้นอาจแยกแยะได้ยาก แต่ก็ไม่เป็นไร แต่ท้ายที่สุดแล้วเราต้องการรู้สึกว่ามีความหมาย โครงสร้าง หรือองค์กรบางอย่างที่อยู่เบื้องหลังงานศิลปะ ไม่สามารถรวมเข้าด้วยกันอย่างส่งเดช แม้ว่าเราจะไม่สามารถพัฒนาความเข้าใจที่เป็นเหตุเป็นผลได้ แต่เราต้องมีความเข้าใจโดยสัญชาตญาณของงานศิลปะเพื่อที่จะชื่นชมมัน ดังนั้น หากเราชื่นชมศิลปะโดยที่เราไม่คาดคิด นั่นจะทำให้เรามีปัญหาในการเขียนโปรแกรมหรือไม่? การเขียนโปรแกรมเป็นหนึ่งในจุดแข็งที่ทำให้เป็นเครื่องมือที่มีประโยชน์ สามารถคาดเดาได้ เราสามารถเขียนระบบเหล่านี้ที่แจ้งให้เราทราบว่าจะเกิดอะไรขึ้นในสถานะที่กำหนด และยกเว้นข้อผิดพลาดใดๆ เป็นวิธีการทำงานที่คาดเดาได้มาก
สิ่งนี้อาจดูขัดแย้งกับความต้องการของเราในการสร้างงานศิลปะที่คาดเดาไม่ได้ แต่ศิลปินแนวสร้างสรรค์จำนวนมากได้จัดการกับปัญหานี้ค่อนข้างประสบความสำเร็จ ดังนั้นฉันจะหารือเกี่ยวกับวิธีแก้ปัญหาบางอย่าง วิธีการของฉันเองและดูเหมือนว่าศิลปินหลายคนที่ฉันติดตามจะใช้เช่นกัน เป็นรูปแบบการเขียนโปรแกรมที่เป็นแนวทางมากกว่าคำอธิบายที่ถูกต้องเกี่ยวกับสิ่งที่ควรสร้างขึ้น เพื่อให้เห็นภาพตัวอย่างที่นี่ นี่คือภาพสองภาพที่สร้างจากโปรแกรมเดียวกัน:



หากไม่มีการเปลี่ยนแปลงโค้ดใดๆ เพียงแค่เรียกใช้หลายๆ ครั้ง ฉันก็ได้ผลลัพธ์สองรายการที่แตกต่างกันโดยสิ้นเชิง แต่ผลลัพธ์เหล่านั้นก็ยังดูมีความเกี่ยวข้องกันในด้านสุนทรียภาพในบางแง่มุม แทบไม่มีการจับคู่พิกเซลเดียว แต่อย่างใด พวกมันเชื่อมโยงกัน วิธีที่จะบรรลุเป้าหมายนี้คือการใช้การสุ่มอย่างพิถีพิถันและพิถีพิถัน ตั้งแต่โครงสร้างระดับสูงไปจนถึงรายละเอียดปลีกย่อย และองค์ประกอบต่างๆ เช่น ตัวเลือกสี
อัลกอริทึมส่วนใหญ่จะอิงตามประเภทของการแบ่งย่อยรูปสามเหลี่ยมแบบวนซ้ำ โดยใช้การสุ่มทำสิ่งต่างๆ เช่น แทนที่จะแยกแต่ละรูปสามเหลี่ยมอย่างสมบูรณ์แบบ อาจอยู่นอกจุดศูนย์กลางเล็กน้อยหรือใช้เส้นโค้งแทนเส้นตรง มันอาจกลับไปสู่ความลึกในบางพื้นที่และไม่ใช่ในบางพื้นที่ และพยายามรักษาการกระจายเหล่านั้นด้วยวิธีที่น่าสนใจ สีอาจสืบทอดจากสามเหลี่ยมแม่ไปยังลูกของมัน แต่มันอาจสุ่มสลับเป็นสีอื่นด้วยความน่าจะเป็นที่หลากหลาย ดังนั้นมันก็คือ... โปรแกรมกำลังเคลื่อนที่ไปในทิศทางที่แน่นอน แต่ไม่มีการจัดวางอย่างชัดเจน สิ่งที่ต้องเกิดขึ้น ฉันยังคงพยายามให้ห้องโปรแกรมทำให้ฉันประหลาดใจด้วยผลลัพธ์ที่ไม่คาดคิด มันเป็นเพียงการสุ่มบูต
ฉันชอบศิลปินอีกคนมาก (Manolo Gamboa Naon) ชื่อของเขายากสำหรับฉันที่จะออกเสียง ดังนั้นฉันจะหลีกเลี่ยงการเชือดมัน แต่ฉันมีสองภาพที่นี่ ซึ่งฉันเชื่อว่ามาจากโปรแกรมเดียวกัน:


คุณจะเห็นอีกครั้งว่าแม้ว่าจะแตกต่างกันอย่างสิ้นเชิง แต่ก็ยังคงรักษาความสวยงามไว้ได้ ดังนั้นมันจึงเป็นวิธีที่นิยมในการทำงาน คุณสามารถค้นหาศิลปินคนอื่น ๆ ที่ดูเหมือนจะใช้แนวทางนี้ นอกจากนี้ยังมีวิธีการที่แตกต่างกันมากซึ่งมีแนวโน้มที่จะอาศัยคุณสมบัติฉุกเฉินและโครงสร้างฉุกเฉิน ดังนั้นสิ่งที่ฉันหมายถึงโดยฉุกเฉินในบริบทนี้คือ คุณมีชุดกฎง่ายๆ ที่ดูเหมือนจะไม่มีอะไรน่าสนใจ แต่ถ้าคุณ เรียกใช้ซ้ำๆ เมื่อเวลาผ่านไป โครงสร้างส่วนบนขนาดใหญ่เหล่านี้เริ่มปรากฏขึ้นโดยที่คุณไม่สามารถคาดเดาได้เพียงแค่ดูที่กฎเท่านั้น
พื้นฐานของสิ่งนี้เกี่ยวข้องกับทฤษฎีความโกลาหล และตัวอย่างง่ายๆ ของระบบอลหม่านก็คือลูกตุ้มสามลูก นี่คือลูกตุ้มสามลูกที่เชื่อมต่อกัน แม้ว่าอ็อบเจกต์เหล่านี้จะเป็นอ็อบเจกต์ที่สามารถคาดเดาได้ในตัวมันเอง แต่เมื่อคุณรวมมันเข้าด้วยกัน คุณจะพบกับระบบที่วุ่นวาย หมายความว่าความแตกต่างเพียงเล็กน้อยในสถานะเริ่มต้นสามารถนำไปสู่ความแตกต่างอย่างมากในผลลัพธ์สุดท้าย

ฉันอยู่ที่นี่ด้วยผลงานศิลปะที่สวยงามจริงๆ ของ Jonathan McCabe เขากำลังทำงานในรูปแบบขั้นสูงของเซลลูล่าร์ออโตมาตา หลายๆ คนคงรู้ว่ามันคืออะไร แต่สำหรับคนที่ไม่รู้จัก คุณอาจเคยได้ยินชื่อเกมแห่งชีวิตของคอนเวย์ ซึ่งเป็นหุ่นยนต์เคลื่อนที่ โดยพื้นฐานแล้วคุณมีกริดที่มีเซลล์ที่สามารถเปิดหรือปิดได้ และคุณสามารถก้าวผ่านไปได้ และมีกฎง่ายๆ ที่ควบคุมว่าเมื่อใดที่เซลล์จะเปิดและปิด เช่น เซลล์มีเพื่อนบ้านจำนวนหนึ่งเปิดอยู่เหมือนว่าพวกเขาจะเปิดในครั้งต่อไป ขั้นตอน

นี่เป็นระบบที่ซับซ้อนมากขึ้น นี่คือสิ่งที่เขาเรียกว่าโมเดลทัวริงแบบหลายสเกล ดังนั้นเขาจึงใช้ออโตมาตาแบบเซลลูล่าร์ ตัวหนึ่งสำหรับคุณสมบัติระดับมาโครและอีกตัวหนึ่งสำหรับคุณสมบัติที่มีรายละเอียดมากขึ้น แต่ที่นี่มีเอาต์พุตที่หลากหลาย และทุกเอาต์พุตของโปรแกรมนี้จะดูแตกต่างไปจากเดิมอย่างสิ้นเชิง มันดุร้ายจริงๆ แต่ก็ยังมีโครงสร้างที่เชื่อมโยงกันซึ่งเรายังคงเข้าใจ สิ่งนี้น่าทึ่งมาก
อีกวิธีหนึ่งที่ใช้กันทั่วไปก็เหมือนกับเซลลูลาร์ออโตมาตา แต่ไม่มีกริด และบางอย่างซับซ้อนกว่าเซลล์ ดังนั้นในกรณีนี้ เรามีสิ่งที่ผมเรียกว่าตัวแทนหรือตัวแสดงที่เคลื่อนไหวภายในระบบ และในบางแง่ก็ส่งผลกระทบต่อมันอย่างมาก และสิ่งเหล่านี้ยังมีแนวโน้มที่จะมีปฏิสัมพันธ์ซึ่งกันและกัน ดังนั้นหากตัวแทนสองคนชนกัน บางทีพวกเขาอาจเปลี่ยนสีที่พวกเขากำลังวาด คุณสามารถตั้งค่าเหล่านี้ได้ด้วยกฎง่ายๆ เช่น หุ่นยนต์เซลลูล่าร์ คุณดำเนินการหลายขั้นตอนและสร้างภาพที่ซับซ้อนนี้ นอกจากนี้ยังใช้งานได้ดีกับภาพเคลื่อนไหว แต่นี่เป็นเพียงภาพนิ่ง

หนึ่งในการพัฒนาล่าสุดคือการเรียนรู้ของเครื่อง ฉันคิดว่าประสาทวิทยาเป็นคำที่ดี นี่คืองานศิลปะที่สร้างโดย Mario Klingemann ฉันมีผลงานบางส่วนของเขาที่นี่ อาร์ตเวิร์กนี้สร้างขึ้นโดยใช้สิ่งที่เรียกว่า GAN ซึ่งเป็นเครือข่ายต่อต้านเชิงสร้างสรรค์ มันเป็นโครงข่ายประสาทเทียม และได้รับการฝึกฝนในรูปแบบหนึ่งๆ แต่จริงๆ แล้วคันโยกสองตัวที่ศิลปินมีเมื่อพวกเขาใช้สิ่งเหล่านี้คือ สิ่งแรกคือชุดการฝึก และด้วยเหตุนี้คอลเลกชั่นของภาพที่เครือข่ายได้รับการฝึกฝน อีกจุดควบคุมที่แท้จริงสำหรับพวกเขาคือฟังก์ชันวัตถุประสงค์ นั่นคือวิธีที่เครือข่ายให้คะแนนตัวเองหรือให้คะแนนตัวเองเพื่อดูว่าทำงานได้ดีหรือไม่ และควรเปลี่ยนแปลงอย่างไรเพื่อให้ทำงานได้ดีขึ้น แต่มีการเปลี่ยนแปลงมากมาย นี่เป็นเพียงส่วนเล็ก ๆ น้อย ๆ ของสิ่งที่เขาทำ ฉันขอแนะนำให้ตรวจสอบเพิ่มเติมอย่างแน่นอน


งานศิลปะเหล่านี้ล้วนมีสไตล์ที่แตกต่างกันมาก แต่ประเด็นทั่วไปที่ฉันคิดว่าเชื่อมโยงพวกเขาเข้าด้วยกันคือพวกเขาทำได้ดีมากในการผสมผสานความสุ่มและโครงสร้าง พวกเขาสามารถรักษาสมดุลระหว่างสองอย่างนี้ได้จนน่าประหลาดใจและคาดเดาไม่ได้ แต่พวกเขาก็ยังมีคำสั่งบางประเภทที่เราสามารถเข้าใจได้หากเพียงสัญชาตญาณ ภาพหนึ่งที่ทำให้ฉันเข้าใจได้ชัดเจนคือผลงานของ John Greene ผู้สร้างงานศิลปะกระเบื้อง:

เห็นได้ชัดว่าระบบการเรียงกระเบื้องแบบนี้เป็นระเบียบมาก แต่เขายังสามารถแนะนำการสุ่มในลักษณะที่สร้างความหลากหลายที่ดีจริงๆ ดังนั้น ฉันคิดว่าเราสามารถตอบคำถาม "คุณสร้างงานศิลปะที่น่าสนใจด้วยการเขียนโปรแกรมได้อย่างไร" เราว่ามันเป็นไปได้ มีหลายวิธีในการสร้างผลลัพธ์ที่น่าประหลาดใจทางโปรแกรม

ดังนั้น ฉันเดาว่าคำถามต่อไปที่น่าสนใจจริงๆ เกี่ยวข้องกับปรัชญาของศิลปะเชิงกำเนิดมากกว่า และมันจะไปทางไหนในอนาคต เราสามารถแปลสุนทรียภาพของเราเป็นโค้ดได้ สิ่งที่ฉันพยายามทำเมื่อฉันเขียนโปรแกรมนี้ก็คือเข้ารหัสสิ่งที่ชอบลงในโปรแกรม แทนที่จะทำให้มันแม่นยำมาก แต่ศิลปะเป็นวิธีปฏิบัติที่ใช้งานง่ายมาก มันนำทางโดยสัญชาตญาณและสัญชาตญาณมากมาย คุณสามารถตัดสินใจผิดพลาดเกี่ยวกับสิ่งที่ต้องทำ และการเขียนโปรแกรมค่อนข้างตรงกันข้ามกับสิ่งนั้น นี่ชัดเจนมาก เป็นระเบียบมาก เป็นระเบียบมาก นี่เป็นความพยายามที่ผิดปกติมากในการผสมเพิ่มสิ่งเหล่านี้ เป็นผลให้ศิลปินผู้ให้กำเนิดหลายคนเริ่มสงสัยว่า:
ฉันจะจำกัดปัญหานี้ให้แคบลงเป็นสี ลองจินตนาการว่าคุณได้รับมอบหมายให้สร้างโปรแกรมที่เลือกสีสำหรับแต่ละรูปร่างในภาพเพื่อสร้างเอฟเฟกต์ที่น่าพึงพอใจ ดูเหมือนว่าเป็นงานที่ทำได้ สีเป็นพื้นที่สามมิติที่เรียบง่ายมาก แต่เมื่อคุณเจาะลึกลงไป สีนี้ก็มีความเกี่ยวข้องอย่างยิ่ง สีใดสีหนึ่งจะได้รับผลกระทบจากสีทั้งหมดที่อยู่รอบๆ สี และตามความใกล้เคียงของสีเหล่านั้น และตามขนาดของสี ไม่เพียงแค่นั้น แต่สียังมีความหมายแฝงทางวัฒนธรรมทั้งหมดเหล่านี้สำหรับเราด้วย เราเชื่อมโยงสีเข้ากับอารมณ์ต่างๆ เราแนบสีกับวัตถุ สถานที่ และแม้แต่ช่วงเวลา ศิลปินที่เก่งจริงๆ ใช้สีในวิธีที่ไม่คาดคิดหรือน่าขัน ดังนั้นจึงเห็นได้ชัดว่าสีไม่ได้เป็นเพียงพื้นที่สามมิติ
ฉันหมายถึง สิ่งที่ต้องทำจริงๆ ก็คือปัญญาประดิษฐ์อันทรงพลัง ซึ่งในจุดนี้ คำจำกัดความของศิลปะก็ยิ่งคลุมเคลือกว่าที่เป็นอยู่ตอนนี้ Matt Pearson มีเรื่องสั้นที่น่าสนใจเรื่องหนึ่ง (Death of an Artist, in Novelty Waves) ที่พูดถึงคนเขียนศิลปิน AI ฉันขอแนะนำให้ตรวจสอบออก ดังนั้น ฉันคิดว่า คำตอบของคำถาม เราสามารถแปลสุนทรียภาพของเราเป็นรหัสได้หรือไม่ เราสามารถทำได้ แต่ไม่ใช่ทั้งหมด จะต้องเป็นการทำงานร่วมกันระหว่างศิลปินและรายการ ซึ่งก็ไม่เป็นไร

ดังนั้น คำถามสุดท้าย และอาจเป็นคำถามที่สำคัญที่สุด ทำไมคุณถึงต้องการทำเช่นนี้ ทำไมต้องสร้างงานศิลปะด้วยรหัส? ฉันคิดว่าคำตอบที่ตรงไปตรงมาที่สุดคือมันสนุก เราใช้เวลาทั้งหมดของเราไปกับการใช้เครื่องมืออันทรงพลังในการพัฒนาทักษะที่ซับซ้อนอย่างไม่น่าเชื่อเหล่านี้ แต่เราไม่ค่อยได้ใช้มันในรูปแบบที่น่าสนใจ
มีกี่คนที่นั่งเขียนโค้ดโดยไม่มีเป้าหมายที่กำหนดไว้ล่วงหน้า? ใช่... เหมือนคุณห้าคน มันอาจจะค่อนข้างหายากสำหรับคุณสองสามคน มันไม่ใช่สิ่งที่เราจะทำกันตามปกติ และฉันคิดว่าเราควรทำจริงๆ การทำสิ่งที่น่าสนใจด้วยทักษะเหล่านี้เป็นครั้งคราวเป็นการสูญเปล่า นอกจากความท้าทายด้านศิลปะแล้ว ยังมีความท้าทายด้านวิศวกรรมที่น่าสนใจอีกมากมายในการทำงานประเภทนี้

หากคุณต้องการเขียนโค้ดที่รวดเร็วจริงๆ คุณสามารถเขียน GPU shader แบบเรียลไทม์ ซึ่งสิ่งเหล่านี้มีทรูพุตที่สูงมาก หากโค้ดขนาดกะทัดรัดที่มีประสิทธิภาพคือสิ่งที่คุณต้องการ มีฉากสาธิตเกี่ยวกับการสร้างสิ่งต่างๆ จากไฟล์สั่งการขนาดเล็กเหลือเชื่อ นั่นคือโลกทั้งใบที่เหมาะกับไฟล์ปฏิบัติการขนาด 4 KB นี่เป็นเพียงภาพนิ่งของวิดีโอ เป็นภูมิประเทศที่มีทั้งภูเขา กลิ่น เมฆ มหาสมุทร และน่าตื่นเต้นมาก

ถ้าคุณชอบหุ่นยนต์ เรามีหุ่นยนต์ มีคนได้สิ่งของอุตสาหกรรมเก้าแกนที่บ้าคลั่งเหล่านี้และวาดภาพบุคคล ฉันต้องตอบสนองตัวเองด้วยหุ่นยนต์สามทางธรรมดา

นี่คือ AxiDraw ผลิตโดยบริษัทเล็กๆ ในแคลิฟอร์เนีย ฉันใช้มันสำหรับการร่างภาพและการวาดภาพ แต่บางครั้งมันก็ดีจริงๆ ที่ได้ทำบางสิ่งในโลกที่จับต้องได้ เป็นพื้นที่ที่ไม่ได้ถูกสำรวจจริงๆ ดังนั้นถ้าคุณชอบทำอะไร จงเป็นคนแรกที่ลงมือทำ มันง่ายมากที่นี่ คุณสามารถเดินไปทางไหนก็ได้ในเสี้ยวหนึ่งของเวลา และคุณอยู่ในดินที่อุดมสมบูรณ์ใหม่ ในแง่ของแรงจูงใจ มันยอดเยี่ยมจริงๆ ด้วยการทำงานเพียงไม่กี่ชั่วโมง คุณจะได้รับคำติชมแบบทันทีทันใด นี่อาจเป็นผลตอบรับที่ไม่ดี แต่ก็ไม่เสมอไป โดยทั่วไปคุณจะสนุกกับสิ่งที่คุณสร้างขึ้น ดังนั้นนี่ไม่ใช่โครงการที่จะต้องใช้เวลาเป็นเดือนหรือเป็นปีเพื่อให้ได้ผลลัพธ์ที่ต้องการ อย่างน้อยสำหรับบุคลิกของฉันการมีแรงจูงใจแบบนี้ก็มีประโยชน์

ฉันคิดว่ามันดำเนินไปโดยไม่ได้บอกว่าคุณจะไม่ทำสิ่งนี้
ฉันพูดถึงเรื่องนี้เล็กน้อย แต่จริงๆแล้วเราควรสนุกกับทักษะเหล่านี้ที่เราพัฒนาขึ้น เราไม่มีเหตุผลที่ดีที่จะไม่ ฉันคิดว่าเราควรจะผ่อนคลายให้บ่อยขึ้นอีกนิดจนเป็นนิสัย แต่ในแง่ที่จริงจังกว่านั้น ฉันรู้สึกว่าเราควรอุทิศเวลาและพลังงานให้กับสิ่งเหล่านี้เพื่อสังคมอย่างแท้จริง เรามีความเข้าใจในเทคโนโลยีและการเขียนโปรแกรมที่คนส่วนใหญ่ในโลกไม่มี ฉันหมายความว่าสำหรับคนส่วนใหญ่แล้ว มันเป็นเรื่องลึกลับสำหรับพวกเขา และบางครั้งงานศิลปะก็สามารถเชื่อมช่องว่างนั้นได้
ตัวอย่างเช่น ลองพิจารณาแมชชีนเลิร์นนิงที่ล้ำสมัย ถ้าฉันไปหาใครสักคนตามท้องถนนแล้วถามพวกเขาว่า "อะไรคือจุดแข็งและจุดอ่อนของอัลกอริธึมการเรียนรู้ของเครื่องที่ล้ำสมัย" พวกเขาไม่รู้ สำหรับบางท่านที่นี่ อาจตอบได้ยากด้วยซ้ำ อย่างไรก็ตาม ถ้าฉันขอให้พวกเขาฟังเพลงสั้นๆ ที่แต่งโดยอัลกอริทึมการเรียนรู้ของเครื่อง หรือให้พวกเขาอ่านบทกวีที่สร้างโดยอัลกอริทึมเหล่านี้ หรือดูงานศิลปะ พวกเขาจะเข้าใจได้อย่างรวดเร็วและเป็นธรรมชาติว่าเกิดอะไรขึ้นกับ มัน. พวกเขาจะสามารถได้ยิน ดี, อาจจะได้รับรายละเอียดที่ถูกต้อง. มันสามารถรวมลำดับโน้ตสั้น ๆ เหล่านี้เข้าด้วยกันในรูปแบบที่น่าพอใจ แต่ไม่สนใจภาพรวม มันไม่มีดราม่าอะไร ไม่มีเรื่องราว ไม่มีความตึงเครียด
ฉันคิดว่าความเข้าใจโดยสัญชาตญาณแบบเดียวกันนี้สามารถเกิดขึ้นได้ไม่เฉพาะในกรณีของการเรียนรู้ด้วยเครื่องเท่านั้น แต่ยังรวมถึงงานศิลปะต่างๆ ที่สร้างขึ้นผ่านการเขียนโปรแกรมด้วย ฉันคิดว่ามีแง่มุมด้านการศึกษา ด้านการสื่อสารที่สำคัญมาก เจเนเรทีฟอาร์ตยังมีแนวโน้มที่จะอธิบายสิ่งต่างๆ เกี่ยวกับโลกให้เราฟัง เนื่องจากเอกภพเองก็กำเนิดขึ้นตามกฎหมายและความน่าจะเป็น สิ่งเหล่านี้นำไปสู่รูปแบบบางอย่าง รูปแบบที่เกิดขึ้น และรูปแบบการประมวลผลเชิงสร้างสรรค์งานศิลปะจำนวนมาก ดังนั้น ไม่ว่าจะตั้งใจหรือไม่ก็ตาม งานศิลปะที่สร้างสรรค์มักสะดุดกับรูปแบบเดียวกับที่เราพบในโลกนี้ ตัวอย่างที่ดีคือเปลือกหอย ฉันไม่รู้ว่ามันเป็นสายพันธุ์อะไร แต่เปลือกนั้นถูกต้อง และรูปแบบในนั้นก็คล้ายกับสตีเฟน วุลแฟรมสร้าง (หรือค้นพบ) หุ่นยนต์เคลื่อนที่ที่เรียกว่ากฎข้อ 30 มาก ยกเว้นว่ามันมีข้อบกพร่องบางอย่าง . แต่น่าทึ่งมากที่สิ่งเหล่านี้สะท้อนให้เห็นในธรรมชาติ

เพื่อเจาะลึกลงไปในชั้นปรัชญาที่ลึกลงไป ฉันคิดว่างานศิลปะเชิงสร้างสรรค์ยังบอกถึงบางสิ่งที่สำคัญเกี่ยวกับเราในฐานะมนุษย์ ศิลปะเป็นพื้นฐานเกี่ยวกับการเป็นมนุษย์ในหลายๆ เมื่อเราพยายามเขียนกฎเกี่ยวกับงานศิลปะ เราพยายามอธิบายสิ่งที่เราชื่นชมเกี่ยวกับงานศิลปะให้ชัดเจนยิ่งขึ้น และวิธีการนี้เปิดเผยข้อจำกัดของมันอย่างรวดเร็ว ความซับซ้อนและความเป็นมิติสูงของงานศิลปะชัดเจนขึ้น และช่องว่างระหว่างวิธีการทำงานของโปรแกรมกับวิธีการทำงานของมนุษย์ก็ชัดเจนมากขึ้น เราเริ่มเห็นว่าโปรแกรมเหล่านี้อาจกล่าวถึง 'วิธีการ' ของการสร้างงานศิลปะ แต่ไม่สามารถระบุถึง 'ทำไม' ได้อย่างแท้จริง ดังนั้นจึงเน้นย้ำถึงความสำคัญของ 'ทำไม' ในงานศิลปะ และวิธีที่เราเป็นมนุษย์ สิ่งมีชีวิต
ดังนั้น ฉันคิดว่าแนวทางนี้สำหรับเจเนอเรทีฟอาร์ต อย่างน้อยก็สำหรับฉัน เผยให้เห็นธรรมชาติของชีวิตมนุษย์มากมาย ส่วนสุดท้ายที่ฉันอยากจะพูดก็คือ วัฒนธรรมใดๆ ก็ตามที่ไม่มีงานศิลปะถือเป็นดิสโทเปีย คุณต้องการให้งานศิลปะเป็นของวัฒนธรรมที่ดีต่อสุขภาพ ศิลปะส่งเสริมการค้นพบ ส่งเสริมการไตร่ตรอง การสื่อสาร และการเห็นคุณค่าของชีวิต เนื่องจากการเขียนโปรแกรมนั้นกำลังกลืนกินโลกโดยพื้นฐานแล้ว - มันมีความสำคัญมากขึ้นทุกวันและชีวิตของเราถูกล้อมรอบด้วยเทคโนโลยีมากขึ้นเรื่อย ๆ - เราจำเป็นต้องตรวจสอบให้แน่ใจว่าเรายอมรับความสำคัญของศิลปะ เราลงทุนบางส่วนหากต้องการให้แน่ใจว่าการสร้างสุขภาพที่ดี วัฒนธรรมสำหรับเราทุกคนเมื่อเราก้าวไปสู่อนาคต เราจะใช้เวลาและพลังงานของเราเพลิดเพลินไปกับมันและสร้างมันขึ้นมา
นี่คือคำตอบที่ดีที่สุดของฉันสำหรับคำถามเหล่านั้น ฉันหวังว่าพวกคุณบางคนจะต้องการเรียนรู้เพิ่มเติมเกี่ยวกับงานศิลปะเชิงสร้างสรรค์หรือสร้างงานศิลปะของคุณเอง ด้วยสิ่งนี้ฉันจะกล่าวขอบคุณ


