14 คะแนน โดย GN⁺ 2025-06-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โปรเจกต์โอเพนซอร์สที่คอมไพล์ OpenCascade เป็น WebAssembly และเชื่อมต่อกับ Three.js เพื่อให้สามารถสร้างแบบ แก้ไข และเรนเดอร์ 3D CAD บนเบราว์เซอร์ได้ในระดับที่ใกล้เคียงเนทีฟ
  • รองรับความสามารถด้านการทำโมเดล CAD ที่หลากหลาย เช่น การสร้างรูปทรง 3D อย่างกล่อง ทรงกระบอก และรูปทรงหมุน, การสเก็ตช์ 2D, การทำ Boolean, extrude, loft, sweep และ offset
  • มีฟีเจอร์ช่วยออกแบบและแก้ไขอย่างแม่นยำ เช่น object/workplane snap, การติดตามแกน, การตรวจจับจุดลักษณะเด่นอัตโนมัติ และไกด์ติดตามแบบภาพ
  • มีเครื่องมือแก้ไขขั้นสูงในตัว เช่น chamfer/fillet/trim/split, การย้าย/หมุน/mirror, การวัดความยาว·พื้นที่·ปริมาตร, การจัดการเอกสาร และการนำเข้า/ส่งออกฟอร์แมตมาตรฐานอุตสาหกรรม (STEP, IGES, BREP)
  • มอบประสบการณ์ผู้ใช้ที่เน้นงานจริงด้วย UI สไตล์ออฟฟิศ, การจัดการ assembly แบบลำดับชั้น, อินเทอร์เฟซหลายภาษา (i18n, รองรับจีนและอังกฤษ) และการควบคุม 3D viewport/กล้อง

ภาพรวม

  • Chili3D เป็นแอปพลิเคชัน 3D CAD แบบโอเพนซอร์สบนเบราว์เซอร์ที่พัฒนาด้วย TypeScript
  • แปลง OpenCascade (OCCT) เป็น WebAssembly และผสานกับ Three.js ทำให้สามารถสร้างแบบ/แก้ไข/เรนเดอร์ 3D ประสิทธิภาพสูงบนเว็บได้โดยตรงโดยไม่ต้องติดตั้ง

ฟีเจอร์หลัก

  • เครื่องมือโมเดลลิง

    • รูปทรง 3D พื้นฐาน: สร้างกล่อง ทรงกระบอก ทรงกรวย ทรงกลม พีระมิด เป็นต้น
    • สเก็ตช์ 2D: เส้น อาร์ก วงกลม วงรี สี่เหลี่ยม รูปหลายเหลี่ยม เส้นโค้งเบเซียร์
    • การทำงานขั้นสูง: Boolean (union, difference, intersection), extrude, revolve, sweep, loft, offset, การสร้างหน้าตัด
  • การ snap และ tracking ที่แม่นยำ

    • Object snap: snap ไปยังจุดลักษณะทางเรขาคณิต เช่น จุด ขอบ และพื้นผิวได้อย่างแม่นยำ
    • ทำการจัดแนว 3D ที่ซับซ้อนได้ง่ายด้วยการติดตาม workplane/แกน, การตรวจจับจุดลักษณะเด่นอัตโนมัติ และไกด์แบบภาพ
  • เครื่องมือแก้ไข

    • การลบมุมโค้ง (fillet), chamfer, trim, split, move, rotate, mirror เป็นต้น สำหรับการแก้ไขทั้ง 3D/2D ที่หลากหลาย
    • การลบฟีเจอร์, การจัดการ subshape, การแยก compound object เป็นต้น สำหรับงานแก้ไขขั้นสูง
  • การวัดและการจัดทำเอกสาร

    • การวัดมุมและความยาว, การคำนวณความยาวรวม/พื้นที่/ปริมาตร
    • การสร้าง/บันทึก/โหลดเอกสาร, Undo/Redo แบบสมบูรณ์, การนำเข้า/ส่งออก STEP/IGES/BREP
  • ส่วนติดต่อผู้ใช้

    • รองรับการจัดวางคำสั่งสไตล์ออฟฟิศ, การจัดการ assembly แบบลำดับชั้น, workplane แบบไดนามิก, การบันทึกตำแหน่ง 3D viewport/กล้อง เป็นต้น
    • อินเทอร์เฟซหลายภาษา (จีน·อังกฤษ) และมีโครงสร้าง i18n ที่เปิดให้มีส่วนร่วมเพิ่มภาษาอื่นได้

เทคโนโลยีสแต็ก

  • ฟรอนต์เอนด์: TypeScript, Three.js
  • เอนจิน 3D: OpenCascade (WebAssembly)
  • บิลด์: Rspack, ทดสอบ: Jest

สถานะการพัฒนาโอเพนซอร์ส

  • อยู่ในขั้นAlpha โดย API/ฟีเจอร์/เอกสารยังคงได้รับการปรับปรุงอย่างต่อเนื่อง
  • ยังมี breaking changes, เอกสารที่ยังไม่สมบูรณ์ และฟีเจอร์จำเป็นบางส่วนที่ยังไม่ได้พัฒนา

การมีส่วนร่วม·ไลเซนส์

  • ยินดีรับการมีส่วนร่วมโอเพนซอร์สทั้งโค้ด บั๊ก และฟีดแบ็ก
  • ไลเซนส์ AGPL-3.0 (สามารถติดต่อแยกต่างหากสำหรับการใช้งานเชิงพาณิชย์)

1 ความคิดเห็น

 
GN⁺ 2025-06-12
ความคิดเห็นจาก Hacker News
  • ตอนแรกอ่านคำอธิบายแล้วนึกว่าเป็นแค่โปรเจกต์ของเล่น 3D ธรรมดา ๆ แต่พอลองใช้จริงกลับน่าทึ่งมาก เร็วมากและ UI ก็ให้ความรู้สึกค่อนข้างใช้งานตรงไปตรงมาแม้สำหรับคนที่ย้ายมาจากเครื่องมืออื่น เสียดายมาตลอดที่ใช้ Fusion 360 บน OpenSUSE Tumbleweed ไม่ได้ แต่ดูเหมือนเครื่องมือนี้จะมาเติมช่องว่างนั้นได้ รู้สึกขอบคุณมาก

  • พอเห็นส่วนที่บอกว่า "คอมไพล์ OpenCascade(OCCT) เป็น WebAssembly แล้วนำมาใช้" ก็สงสัยทันทีว่าเลือก geometry kernel ตัวไหน ไลบรารีหลักสำหรับ solid modeling ที่เป็นแกนสำคัญจริง ๆ แล้วแทบมีแต่ของที่ใช้งานกันมาตั้งแต่หลายสิบปีก่อนเท่านั้นเอง (Parasolid ก็เกือบ 40 ปีแล้ว) เลยยิ่งรู้สึกว่าการสร้างของใหม่ขึ้นมานั้นยากมากจริง ๆ

    • ผมทำงานกับ BREP สำหรับงาน GIS อยู่ ซึ่งแม้แต่เส้นตรงธรรมดา ๆ ใน 2D ก็ยังกลายเป็นปัญหาที่ซับซ้อนมากได้ เป็นพื้นที่ที่มีกรณียกเว้นเกิดขึ้นเยอะมาก ระบบ type ช่วยได้มาก ดังนั้นถ้ามีโอเพนซอร์สที่ทำบน Rust ก็ดูน่ามีความหวังมาก อนึ่ง ผมลองย้ายจาก Fusion 360 ไป Freecad 1.0 แล้ว แม้ Freecad จะยังแทบไม่มีโปรเจกต์ แต่ประสบการณ์คือมันเร็วขึ้นอย่างท่วมท้น

    • โครงสร้างทางคณิตศาสตร์พื้นฐานของเรขาคณิต 3D แทบไม่ได้เปลี่ยนไปมากตลอดเวลายาวนาน หากค่าไลเซนส์ของเคอร์เนลอย่าง Parasolid หรือ ASICs ไม่ได้สูงมาก ก็แทบไม่มีความจำเป็นต้องสร้างโซลูชันใหม่ขึ้นมาเองเลย ช่วงหลังตลาดก็กำลังรวมศูนย์ผ่านการซื้อกิจการต่อเนื่องของบริษัทซอฟต์แวร์ CAD/CAM อย่าง Autodesk และ Hexagon ส่วน OpenCASCADE เองเดิมก็เป็นซอฟต์แวร์เชิงพาณิชย์ แต่เป็นกรณีที่หาลูกค้าได้ไม่มากพอจึงเปลี่ยนมาเป็นโอเพนซอร์ส

    • geometry kernel แบบโอเพนซอร์สแทบไม่มีอยู่จริง ที่พอมองเห็นเด่น ๆ ก็มีแค่ OpenCascade กับ CGAL เลยสงสัยว่ามีตัวอื่นอีกไหม

    • อยากหาอ่านเพิ่มเติมเกี่ยวกับวิธีจัดการปัญหาเรขาคณิตแบบนี้ให้ดี

  • ระดับนี้น่าทึ่งมาก แต่ยังมองไม่ค่อยออกว่าเขาจะทำฟีเจอร์อย่าง constraints หรือ sketches อย่างไร และการออกมาเป็นเว็บแอปก็มีส่วนที่น่าเสียดายนิดหน่อย แต่ก็กำลังยอมรับว่านี่คือทิศทางของการเปลี่ยนแปลง

    • ในฐานะคนที่ใช้ Chromebook ในโรงเรียน การมีเว็บแอปแบบนี้ถือว่ายอดเยี่ยมมาก ถ้านักเรียนสามารถพิมพ์ออก 3D printer ได้ด้วย ก็จะเปิดทางเลือกด้านเครื่องมือได้กว้างขึ้นมาก แต่ในฐานะครูและผู้ปกครองก็ยังเป็นห่วงว่าเด็กที่โตมากับ Chromebook อย่างเดียวอาจไม่รู้จัก local app, file system ฯลฯ เวลาลูกทำโปสเตอร์ เขามักค้นหารูปแล้วคัดลอก-วางไปมาระหว่างเครื่องมือบนเว็บหลายตัว แต่พอเราบอกว่าบนแอปเดสก์ท็อปอย่าง Affinity หรือ Photoshop ทำทั้งหมดได้ในที่เดียว เด็กกลับไม่ค่อยรู้สึกว่าเป็นเรื่องสำคัญ ซึ่งให้ความรู้สึกแปลก ๆ

    • เวอร์ชันปัจจุบันยังไม่มีฟีเจอร์นั้น แต่มีแผนจะเพิ่มเข้ามาในอนาคตในรูปแบบ parametric components

    • มากกว่าประเด็นว่าเป็นเว็บแอป ควรให้ความสำคัญกับเรื่อง parametric design อย่าง constraints และ sketches ว่าสำคัญแค่ไหน สำหรับผม นี่คือองค์ประกอบหลักที่ทำให้โปรแกรม CAD จะถูกมองว่าเอาจริงเอาจังได้หรือไม่

    • นี่เป็นตัวอย่างที่แสดงให้เห็นว่าเบราว์เซอร์ก็ทรงพลังได้ไม่แพ้ native app เมื่อเป็นแบบ browser-based ก็หมดปัญหาการผูกติดกับ OS และยังมีข้อดีอย่างการเปิดหรือแชร์ไฟล์ให้วิศวกรหรือนักเรียนทั่วโลกทำได้ง่ายขึ้น บนโน้ตบุ๊กใหม่ ๆ ประสบการณ์กลับเร็วกว่า native app เสียอีก สามารถเริ่มวาดได้ภายใน 30 วินาทีโดยไม่ต้องสมัครสมาชิก ไม่ต้องใช้อีเมล ไม่ต้องมี 2FA ที่ซับซ้อน และเมื่อเทียบกับเครื่องมือส่วนใหญ่อื่น ๆ ก็มีข้อได้เปรียบหลายด้านรวมถึงเรื่องค่าใช้จ่าย ช่วงนี้ผมใช้ SketchUp, AutoCAD, Revit อยู่ แล้วมาเจอเครื่องมือนี้ เลยรู้สึกตื่นเต้นกับอนาคตมาก

  • ชื่อไอคอนเครื่องมือบางอันค่อนข้างแปลกและไม่คุ้นเคย เช่น "Bessel", "pour corner", "From the cross section" น่าจะต้องเปลี่ยนเป็นคำอังกฤษที่ใช้กันทั่วไปใน CAD มากกว่า ระหว่างใช้งานภาษาดันสลับไปเป็นภาษาจีนกะทันหัน และก็ไม่มีวิธีง่าย ๆ ที่จะสลับกลับมาเป็นอังกฤษ เลยใช้งานลำบากอยู่เหมือนกัน

  • คิดว่าเป็นงานที่ยอดเยี่ยม โดยเฉพาะเวลาได้เห็นโปรเจกต์โอเพนซอร์สในพื้นที่ที่ถูกผู้เล่นไม่กี่รายอย่าง Dassault, Autodesk ฯลฯ ครองอยู่ก็ยิ่งน่ายินดี ช่วงนี้ก็ยังคาดหวังกับการเกิดขึ้นของสาย CAD ที่รับรู้บริบทโดยใช้ LLM และ AI ด้วย

  • ยอดเยี่ยมจริง ๆ ผมหาผลิตภัณฑ์ที่คล้าย OnShape แบบนี้มานานแล้ว ถ้าเป็นเครื่องมือแบบนี้ ต่อให้ต้องจ่ายหลายร้อยดอลลาร์ก็ยินดีมาก ตอนนี้รู้สึกว่าใบอนุญาต OnShape แพงเกินไป และการต้องจ่ายเกิน 1,000 ดอลลาร์เป็นภาระพอสมควร

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

    • ส่วนตัวรู้สึกว่าแพ็กเกจฟรีของ OnShape ก็ให้มาค่อนข้างใจกว้างมาก

  • ชอบอินเทอร์เฟซมาก อยากให้ FreeCAD มีอะไรในลักษณะนี้บ้าง โดยส่วนตัวผมเป็นสายสร้างโมเดลพาราเมตริกผ่าน Python interface แต่โปรเจกต์นี้ก็ดูเท่มาก สงสัยว่า CAD kernel ของโปรเจกต์ Truck มีแผนจะถูกนำไปใช้ทำโอเพนซอร์ส CAD หรือไม่ Truck เป็นโปรเจกต์ปัจจุบันที่ดูมีอนาคตมาก

    • CADmium ใช้ Truck kernel เป็นฐาน แต่ CADmium เองก็แทบไม่มีความเคลื่อนไหวตั้งแต่เดือนมิถุนายน 2024 แล้ว และนี่คือลิงก์ CADmium อีกทั้งยังมี Fornjot kernel ด้วย

    • อยากรู้แบบเจาะจงว่ามีอะไรในอินเทอร์เฟซของ FreeCAD ที่คุณไม่ชอบ

  • คิดว่าเป็นโปรเจกต์ที่ทำออกมาได้ดีมาก หวังว่าจะพัฒนาต่อไปเรื่อย ๆ โดยเฉพาะอยากเห็นการจับมือกับ 3D printer หรือผู้ผลิต เหมือนที่ EasyEDA ทำงานร่วมกับผู้ผลิตเพื่อการผลิต PCB เพื่อให้ผู้ใช้ทั่วไปสามารถผลิตงานจากดีไซน์ของตัวเองได้ง่าย ๆ ภายในไม่กี่คลิก

    • แนะนำให้ลองเชื่อมกับ Slant3D ดูด้วย บริการพิมพ์ 3D แบบ teleported ของ Slant3D น่าจะยิ่งไปได้ไกลขึ้นด้วยเอดิเตอร์แบบบูรณาการลักษณะนี้
  • หาได้ยากมากที่จะมีโปรเจกต์ที่ได้ทั้งประสิทธิภาพและ UI ในระดับนี้ เลยรู้สึกตื่นเต้นมาก โปรแกรม 3D ที่ใช้งานง่ายและดูดีอย่างชัดเจนจริง ๆ มีน้อยกว่าที่คิดมาก เลยดีใจมากที่ได้เห็นแบบนี้ หวังว่าโปรเจกต์ลักษณะนี้จะมีออกมาอีกเยอะในอนาคต

  • UI ทำให้นึกถึงผลิตภัณฑ์ของ Microsoft ซึ่งกลับให้ความรู้สึกเชิงบวกพอสมควร อยากรู้ว่าคุณคิดว่ามันต่างจากเครื่องมือ 3D CAD ทั่วไปอย่างไร และอะไรคือแรงจูงใจที่ทำให้สร้างเครื่องมือนี้ขึ้นมา