demo voxelcad
play

Demo: VoxelCAD Csongor Kiss, Toby Shaw What is VoxelCAD? - PowerPoint PPT Presentation

Demo: VoxelCAD Csongor Kiss, Toby Shaw What is VoxelCAD? Collaborative voxel-based CAD tool In the browser Programmable with a functional DSL Written in Elm + Haskell (+ TypeScript) Work in progress Some context


  1. Demo: VoxelCAD Csongor Kiss, Toby Shaw

  2. What is VoxelCAD? • Collaborative voxel-based CAD tool • In the browser • Programmable with a functional DSL • Written in Elm + Haskell (+ TypeScript) • Work in progress

  3. 
 Some context • People use Minecraft as an artistic canvas • These tend to get very big 
 There are some tools, but they are not very intuitive: 
 - clunky 
 - slow 
 - no immediate feedback

  4. Some context • People use Minecraft as an artistic canvas • These tend to get very big • There are some tools, but they are not very intuitive: 
 - clunky 
 - slow 
 - no immediate feedback

  5. Functional DSL • Pure - no global state, idempotent scripts • Nicely composes • Easy to understand, even without programming knowledge • “We’ll write a parser later” => lisp

  6. DEMO

  7. Constructive Solid Geometry type Primitive = Cylinder | Sphere | Cube | Cone

  8. Combine primitive solids with boolean operations type Op = Union | Intersect | Subtract

  9. type Construction = Leaf Transform Primitive | Combine Transform Op Construction Construction type Transform = …

  10. Voxelisation

  11. Hardware-accelerated voxelisation

  12. A LONGER DEMO

  13. Thoughts on Elm • New programming language for web applications • Similar to Haskell • But there are some inconvenient differences • Predictable run-time system

  14. data Transformation = Scale Vec3 Vec3 | Rotate Float Vec3 Vec3 | Translate Vec3 deriving (Generic, FromJSON, ToJSON)

  15. data Transformation = Scale Vec3 Vec3 | Rotate Float Vec3 Vec3 | Translate Vec3 deriving (Generic, FromJSON, ToJSON, Elm)

  16. Future work • More usable editor (auto-completion, syntax highlighting…) • A typed DSL • More “mouse-support” (for curve control points, for example) • Could be used for teaching programming: your program builds things in Minecraft!

  17. Thank you

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend