Writing a CAD Language in Rust (with Adam Chalmers)

Developer Voices

Given how many languages have been written in C over the years, it’s not surprising to see new languages being written in Rust. What is surprising about this week’s guest is the domain he’s writing for: Computer Aided Design (CAD). Could Rust be sneaking its way into the CAD world too?

Joining me to discuss the design and implementation of a CAD programming language is Adam Chalmers. He works at Zoo, developing KCL - a language that looks like JavaScript, runs on Rust, and offers users a seamless hybrid experience of both coding and point-and-click modelling. So, how does that all fit together?

In this episode we look at the design and implementation of a programming language in Rust; how KittyCAD creates that hybrid environment for text-based programming and point-and-click modelling; and how we can learn to write our own Rust-interpreted languages.

Adam’s Blog: https://adamchalmers.com/

Adam’s Guide To Writing Parsers: https://www.youtube.com/watch?v=QF3kMyzMC40

Zoo’s Modelling App: https://zoo.dev/modeling-app

Mechanical CAD: https://zoo.dev/blog/mechanical-cad-yesterday-today-and-tomorrow

A Lego brick in KCL: https://zoo.dev/docs/kcl-samples/lego

Winnow: https://docs.rs/winnow/latest/winnow/

Nom: https://docs.rs/nom/latest/nom/

Factorio: https://www.factorio.com/

Satisfactory: https://store.steampowered.com/app/526870/Satisfactory/

Crafting Interpreters: https://craftinginterpreters.com/

Coding in Antarctica: https://brr.fyi/

Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices

Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join

Adam on Mastodon: https://mastodon.social/@adam_chal@hachyderm.io

Kris on Mastodon: http://mastodon.social/@krisajenkins

Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/

Kris on Twitter: https://twitter.com/krisajenkins

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes, and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada