- p5.js เป็นไลบรารี JavaScript โอเพนซอร์สฟรีที่ช่วยให้เริ่มเรียนการเขียนโค้ดและสร้างงานศิลปะบนเว็บได้
- มุ่งรองรับผู้ใช้หลากหลายกลุ่มอย่างศิลปิน นักออกแบบ ผู้เริ่มต้น และนักการศึกษา โดยมี ชุมชนที่เปิดกว้างและครอบคลุม เป็นหัวใจสำคัญของโปรเจกต์
- แทนที่จะเพิ่มฟีเจอร์ใหม่แบบไม่จำกัด โครงการเลือกแนวทางที่ยกเว้นเฉพาะฟีเจอร์ที่ช่วย เพิ่มการเข้าถึง
- มี Reference, ตัวอย่าง, เว็บเอดิเตอร์ และวิดีโอแนะนำแบบโต้ตอบให้ใช้งาน เพื่อเริ่มเรียนรู้และสร้างงานด้านแอนิเมชัน ออดิโอ และ WebGL ได้ทันที
- มีทั้งดาวน์โหลด การบริจาค การเข้าร่วมชุมชน และลิงก์ไปยัง p5.js 2.0 beta รวมไว้ในที่เดียว จึงเป็นจุดเริ่มต้นสำหรับทั้งผู้เรียนและผู้มีส่วนร่วม
p5.js สำหรับการเขียนโค้ดและงานศิลปะ
- p5.js เป็น ไลบรารี JavaScript โอเพนซอร์สฟรีสำหรับการเรียนรู้การเขียนโค้ดและสร้างงานศิลปะ
- ยินดีต้อนรับผู้ใช้ที่หลากหลาย เช่น ศิลปิน นักออกแบบ ผู้เริ่มต้น และนักการศึกษา
- โปรเจกต์นี้ดำเนินงานโดยมีชุมชนที่เปิดกว้างและใส่ใจดูแลกันเป็นศูนย์กลาง
- มีตัวอย่างกิจกรรม เช่น Coding Club สำหรับผู้มีอายุ 50 ปีขึ้นไปในเกาหลี และเวิร์กช็อปใน Nairobi และ NYC
- นโยบายการเพิ่มฟีเจอร์มีความชัดเจนพอสมควร
- จะไม่เพิ่มฟีเจอร์ใหม่ ยกเว้นฟีเจอร์ที่ช่วยเพิ่ม การเข้าถึง
เส้นทางในการเริ่มเรียนรู้และสร้างผลงาน
- Reference: เอกสารอ้างอิงของไลบรารี p5.js
- Examples: พื้นที่สำหรับเรียนรู้ p5.js ผ่านตัวอย่าง
- Start Coding: เอดิเตอร์ p5.js สำหรับเริ่มเขียนโค้ดบนเว็บได้ทันที
- interactive video: วิดีโอแนะนำแบบโต้ตอบที่ครอบคลุมแอนิเมชัน ออดิโอ WebGL การเข้าถึง และวิธีการมีส่วนร่วม
- Download Library: ดาวน์โหลดไลบรารี p5.js
ชุมชนและการมีส่วนร่วม
- Community: หน้าสำหรับดูความเคลื่อนไหวของชุมชน p5.js
- Donate: ช่องทางบริจาคเพื่อสนับสนุนโปรเจกต์
- p5.js 2.0 beta: เว็บไซต์เบตาแยกสำหรับดู p5.js 2.0 เวอร์ชันใหม่
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เหตุผลหลักที่ลิงก์นี้ขึ้นบน HN ตอนนี้ น่าจะเป็นเพราะ เว็บไซต์ใหม่ของ p5.js
ในปี 2023 Sovereign Tech Fund ให้ เงินสนับสนุน 450,000 ยูโร แก่ทีม p5.js ในนามของ “การปรับปรุงโครงสร้างเอกสารและการเข้าถึงของ p5.js” และผลลัพธ์ที่เห็นตอนนี้ดูเหมือนจะมาจากการลงทุนนั้น
โดยส่วนตัวคิดว่ามีผลงานออกมาจริง การนำทางและการค้นหาในไซต์ง่ายขึ้นมาก และข้อมูลก็มีประโยชน์กว่าเดิม เช่น ลองเทียบเอกสารเก่าและเอกสารใหม่เกี่ยวกับวิธีใช้ตัวแก้ไข p5.js และแคนวาสด้วย screen reader ได้
[1] - STF announcement/progress - https://p5js.org/events/stf-2024/
[2] - Using p5 with a screen reader (old version) - https://archive.p5js.org/learn/p5-screen-reader.html
[3] - How to Use the p5.js Web Editor with a Screen Reader (new) - https://p5js.org/tutorials/p5js-with-screen-reader/
[4] - Writing Accessible Canvas Descriptions (new) - https://p5js.org/tutorials/writing-accessible-canvas-descrip...
เคยใช้ Processing เมื่อราว 10 ปีก่อน ตอนนั้นก็ง่ายมากอยู่แล้ว ส่วนใน p5.js ก็เจอบั๊กหรือส่วนที่ยังไม่ได้ implement ได้ง่าย แม้จะพอร์ตให้เกือบเหมือนกันได้ แต่ไม่ใช่แบบ 1:1 และต้องเรียนรู้ API บางส่วน
ด้านประสิทธิภาพ p5.js ยังไม่ใกล้เคียง d3 หรือ three.js เลย พูดตรง ๆ ว่าในปี 2024 นอกจากเป็นเครื่องมือเพื่อการศึกษาแล้ว p5.js ยังมีความหมายแค่ไหนก็ชวนสงสัย แอนิเมชันบนเว็บสมัยนี้ดูเหมือนทำด้วย CSS3 รุ่นใหม่และไลบรารีเสริมจะง่ายกว่า และยังดูเป็นไปได้ที่จะมีเวิร์กโฟลว์ง่าย ๆ จากแอปเวกเตอร์ฟรีต่อไปยัง CSS
แม้แต่งานที่ต้องคำนวณระดับพิกเซล ก็ไม่มีวิธีง่าย ๆ ในการใช้ GPU อย่างมีประสิทธิภาพ ดังนั้น เงินสนับสนุน 450,000 ยูโร จึงรู้สึกค่อนข้างแปลก โดยเฉพาะเมื่อถูกจัดสรรให้เฟรมเวิร์กที่ไม่ได้รับความนิยมมากนัก
แต่ไม่ชอบการจัดวางบนจอใหญ่เท่าไร บทช่วยสอนที่ลิงก์ไว้ [1] เป็นย่อหน้าชิดซ้ายแบบความกว้างคงที่ ทำให้ครึ่งขวาของหน้าจอว่างอยู่ ในทางกลับกัน องค์ประกอบอย่างหน้าภาพรวมเอกสารอ้างอิง [2] กลับขยายเต็มหน้าจอเป็น 4 คอลัมน์ ซึ่งดูใช้ได้เมื่อย่อหน้าต่างเบราว์เซอร์เหลือครึ่งจอ แต่พอขยายเต็มจอแล้วอ่านยาก
[1]: https://p5js.org/tutorials/p5js-with-screen-reader/
[2]: https://p5js.org/reference/
มีผู้สมัครรับประมาณ 175,000 คน จึงมักเห็นลิงก์ที่ใส่ไว้ในนั้นขึ้นหน้าแรกของ HN ในอีกไม่กี่ชั่วโมงถัดมา แม้แทบจะพิสูจน์ความเกี่ยวข้องจริง ๆ ไม่ได้ แต่ก็ถือเป็นหนึ่งในความสนุกของการที่ลิงก์แพร่กระจายในอีโคซิสเต็ม
ไซต์ใหม่ปรับให้เหมาะกับมือถือมากขึ้น และทำให้อ่านเนื้อหาได้มากขึ้นบนหน้าจอความหนาแน่นสูง การที่ p5.js กลับมาได้รับความสนใจใหม่ก็สมเหตุสมผลดี และวิดีโอ Coding Train ที่เกี่ยวข้องก็คุ้มค่าที่จะดูเช่นกัน
ChatGPT รู้จัก P5.js ค่อนข้างดี ถ้าบอกว่า “ช่วยเขียนโปรแกรม P5 ที่วาดคลื่นไซน์และปรับเฟสด้วยสไลเดอร์ได้” ก็สร้างให้ได้ทันที
ผมใช้ ChatGPT กับ P5.js ทำเครื่องมือออกแบบสำหรับถ่วงสมดุลมวล 5 ก้อนบนเส้นรอบวง เพื่อสร้างคันชักแม่เหล็กแบบหมุนที่ลด harmonic locking
ลองลากจุดยอดของรูปห้าเหลี่ยมได้: https://editor.p5js.org/spDuchamp/full/zgtkE2xik
ผลงานที่พิมพ์ 3D: https://www.instagram.com/p/Cr4ZXGztY27/
เป็นเว็บไซต์ที่สวยจริง ๆ แปลกใจที่ในส่วน About ตัดเนื้อหาว่านี่คือ สิ่งที่สืบทอดแนวคิดจาก Processing ออกไป
ตอนนี้ p5.js อาจดังยิ่งกว่า Processing แล้ว หรืออาจดังยิ่งกว่า Processing ในอดีตเสียอีกก็ได้
หนึ่งในข้อไม่พอใจหลักของเขาคือ โปรเจกต์ p5.js เข้ามาครอบงำ Processing Foundation และทำให้การพัฒนา Processing ถูกลดบทบาทลง
ในยุคที่การจัดการพิกเซลบนพื้นที่อย่างแคนวาสในเว็บเพจเพื่อสร้างการทดลองด้านภาพที่น่าสนใจยังค่อนข้างยาก มันเป็นเครื่องมือที่สมเหตุสมผลจริง ๆ และอ่านง่าย เข้าถึงได้ดีสำหรับศิลปินที่มีประสบการณ์เขียนโปรแกรมไม่มาก
ตอนเรียนมหาวิทยาลัย เคยเล่นกับ p5.js แล้วสนุกมาก และเมื่อก่อนก็เคยทำ เซลลูลาร์ออโตมาตา เล็ก ๆ เองด้วย: https://ezhik.me/beyond184/
บังเอิญว่างานที่ทำให้เริ่มสนใจดิจิทัลอาร์ตครั้งแรก ซึ่งเหมือนเป็นการคารวะต่อคอมพิวติ้งอย่างสนุกสนาน ก็ใช้ p5.js ด้วย: https://baku89.com/work/ffff?lang=en https://animethemes.moe/anime/subete_ga_f_ni_naru_the_perfec...
หนึ่งในสิ่งที่ยากที่สุดสำหรับโปรแกรมเมอร์คือการต้องฝ่าฟันโค้ด boilerplate ก่อนจะวางพิกเซลแรกลงบนหน้าจอได้ แต่ p5.js แก้เรื่องนั้นได้ค่อนข้างดี ทำให้โฟกัสกับ ด้านการสร้างสรรค์ ของ “creative coding” ได้มากขึ้น
คงไม่ใช้ p5.js สำหรับ “การพัฒนาซอฟต์แวร์ขนาดใหญ่จริง ๆ” แต่เวลาที่อยากสเก็ตช์งาน มันคือเครื่องมือดิจิทัลแรก ๆ ที่นึกถึง
ได้รู้จักไลบรารีนี้เมื่อไม่กี่ปีก่อนเพราะ Daniel Shiffman
วิดีโอของเขาเป็นสิ่งสำคัญมากในการเติบโตในฐานะโปรแกรมเมอร์
เป็นไลบรารีที่ค่อนข้างดีสำหรับทำเกมอย่างรวดเร็ว
เคยทำ ซิมูเลชันน้ำ เล็ก ๆ ด้วย p5.js และชอบมากที่ p5 เรียนรู้ได้ง่าย
[1]: https://github.com/trungdq88/summer
Processing ซึ่งเดิมทีมีพื้นฐานจาก Java เป็นแรงบันดาลใจให้ไลบรารีจำนวนมาก
ทุกวันนี้สามารถหาไลบรารีที่เข้ากันได้ในระดับหนึ่งในภาษายอดนิยมส่วนใหญ่
เคยเขียนเวอร์ชันสำหรับ Racket เป็นโปรเจกต์ช่วงฤดูร้อน: https://docs.racket-lang.org/manual-sketching/
แรงบันดาลใจที่ใหญ่ที่สุดคือช่อง YouTube “The Coding Train” ของ Daniel Shiffman เขามีเซนส์ในการเลือกปัญหาและอัลกอริทึมที่น่าสนใจทางภาพ และความกระตือรือร้นของเขาก็ไม่มีใครเทียบได้
https://thecodingtrain.com/
เคยใช้ p5.js ในงานมืออาชีพมาค่อนข้างมาก แต่ถ้าใครกำลังจะใช้ตอนนี้ ก็ควรรู้ไว้ว่าเกิดอะไรขึ้นกับหนึ่งในผู้ร่วมก่อตั้ง foundation และผู้สร้าง ภาษา Processing ต้นฉบับซึ่งเป็นรากฐานของ p5
https://news.ycombinator.com/item?id=37760363
ตอนนี้เมื่อรู้สิ่งที่รู้แล้ว ก็รู้สึกเสียใจที่เคยสนับสนุนงานของ Processing Foundation
ในยุคที่มีกราฟิก API ประสิทธิภาพดีมากมายขนาดนี้ ก็เข้าใจแล้วว่าทำไม Processing/p5 ถึงดูนิ่งและแทบไม่มีการเปลี่ยนแปลงใหญ่ ๆ มาหลายปี เป็นจุดจบที่น่าเศร้า
ชอบ P5.js มาก ชุมชน OpenProcessing มีผลงานเจ๋ง ๆ หลายพันชิ้นที่สามารถดู โคลน และแก้ไขได้ง่าย
ปกติใช้ Python เป็นหลัก แต่การค่อย ๆ ปรับแก้โปรแกรม P5.js ช่วยให้เรียน JavaScript ได้
[1] -- https://openprocessing.org/discover/#/trending
ใน playground ของ p5.js สามารถเขียนและรันโค้ดในเบราว์เซอร์ได้ และยังสร้างบัญชีเพื่อบันทึก code sketch ได้ด้วย
https://editor.p5js.org/nonoesp/sketches/ruSYeEUEH