Writing a CAD Language in Rust (with Adam Chalmers)

Поделиться
HTML-код
  • Опубликовано: 31 янв 2025

Комментарии • 43

  • @AK-vx4dy
    @AK-vx4dy 3 месяца назад +13

    Legendary AutoCAD sported Lisp as i heard from olders

    • @EdwardPsCL
      @EdwardPsCL 3 месяца назад +1

      AutoLISP is still a thing. Man, have I found the limits of that language, albeit a fantastic scripting environment for CAD work :D

    • @Evan490BC
      @Evan490BC 2 месяца назад

      Indeed it did! An XLisp variant, to be exact.

  • @swannie1503
    @swannie1503 3 месяца назад +9

    Love this project! Currently I am a data engineer primarily working on data platform APIs with rust, however in a past life I was an architect using tools like Grasshopper and Autodesk Revit's API both in my training and practice. These tools both led me to pursue software and data more seriously, ultimately transitioning my career. Very exciting to see projects and applications list this!

  • @aus10d
    @aus10d 3 месяца назад +1

    Super interesting. I do cad every day, so was really interested to see how others are developing new ways of doing things. I REALLY wish to do cad with less mouse work.
    I've followed Adam's boss, Jess Frazelle, for a while. Would be really great to get her on this podcast sometime to talk about all her great experiences!
    Plus people from the Oxide team would be awesome too! Bryan Cantrill and Adam Leventhal, even to talk about DTrace. That would be a great episode!

  • @carlriemann925
    @carlriemann925 3 месяца назад +15

    Have you thought of doing a podcast with c3 language creator Christoffer Lerno. It's a great language trying to evolve C instead of replacing it.

    • @wassim-akkari
      @wassim-akkari 3 месяца назад +2

      you mean another c++

    • @carlriemann925
      @carlriemann925 3 месяца назад

      @@wassim-akkari better than c++

    • @AK-vx4dy
      @AK-vx4dy 3 месяца назад +2

      Not exactly, as I understand c3 is in Zig direction approximately

    • @joshring8563
      @joshring8563 3 месяца назад +2

      That would be amazing

  • @robgrainger5314
    @robgrainger5314 3 месяца назад +1

    It's mindblowing that in 1963, Ivan Sutherland's sketchpad pretty well invented the CAD genre, and even had a rudimentary constraint solving system. Given the hardware of that era, it's utterly remarkable.
    "Nobody told me it was hard." - Ivan Sutherland

  • @theevilcottonball
    @theevilcottonball 3 месяца назад +3

    I honestly thought this was about Fornjot when I saw the video title.

  • @DavidLindes
    @DavidLindes 3 месяца назад

    Interesting stuff. I've been dreaming about stuff like this since at least as long as it's been (a decade or something?) since I first saw Brett Victor's talk on "Inventing on Principle"... maybe longer. I kinda wish it wasn't a commercial cloud product, but... still cool to hear about.
    Also, hah, amusing to hear a Factorio plug in here. :)

  • @stergios426
    @stergios426 3 месяца назад +2

    Let's say you have a machine and model it as an assembly with say 1000+ parts. How does one work with the code to modify an integral part and not violate the constraints of a sub assembly, adjacent assembly, or other parts of the hierarchy? SolidEdge, SolidWorks, Catia, F360, heck even FreeCad all have the equivalent of an AST in their hierarchy and it is two way modifiable. I don't see this solution contributing in a machine/product design context.

  • @gcewing
    @gcewing 3 месяца назад +2

    Let's not kid ourselves. The real reason companies want to run the rendering on their servers is so they can charge you money each time you use it.

  • @tilakmadichettitheappdeveloper
    @tilakmadichettitheappdeveloper 3 месяца назад

    40:35 You split the string into an array of characters if you want to get O(1) n'th access

    • @theevilcottonball
      @theevilcottonball 3 месяца назад

      That still often does not make sense. In the case where people do that they often want grapheme clusters because "characters" as in unicode codepoints don't really mean anything. The other option is to limit yourself to ascii which is a perfectly fine choice for a programming language and Rust's ascii byte strings provide O(1) access.

    • @tilakmadichettitheappdeveloper
      @tilakmadichettitheappdeveloper 3 месяца назад

      @@theevilcottonball limit yourself to ASCII characters..... You must be American 😅

    • @theevilcottonball
      @theevilcottonball 3 месяца назад

      @@tilakmadichettitheappdeveloper Actually I am not. But I am European. So by limitng myself to ascii there would only be a like a dozen characters and diacritics and symbols that I would miss, if I were to program in my native language. But I program in english anyway. Library functions and programming language keywords are usually in english anyway, so you would constantly be switching langauges if I used identifier names in my native language.

  • @budiardjo6610
    @budiardjo6610 3 месяца назад

    wow, another ambitious project in rust.

  • @nejathakan5521
    @nejathakan5521 3 месяца назад +1

    ❤ Nice

  • @adamsakym3263
    @adamsakym3263 3 месяца назад +1

    How different is this from CadQuery?

    • @theevilcottonball
      @theevilcottonball 3 месяца назад

      Cadquery is programmed in Python, this is programmed in KCL, Cadquery runs locally, this runs on some cloud GPU servers. Cadquery is free and will be free, the cost of KCL is free currently but noone knows how much their cloud GPU stuff will cost in the future. Cadquery is implemented in Python, this CAD is implemented in Rust. Cadquery has no mouse editing support, KCL has it.

  • @theevilcottonball
    @theevilcottonball 3 месяца назад +2

    I use OpenSCAD.

    • @theevilcottonball
      @theevilcottonball 3 месяца назад +1

      Using the mouse in OpenSCAD as well would be really cool. But I am probably not going to switch to KCL as I cannot have control over the software. Their tools are free now, but they can change their pricing dramatically or shut down their GPU servers and I would be stuck with a dysfunctional app.

    • @DavidLindes
      @DavidLindes 3 месяца назад

      @@theevilcottonball right? I heard some of the intro, and thought "ooh, someone's doing the thing I've been dreaming about for years! Maybe I don't have to anymore!", and then it became clear that not only was it non-free (in the GNU/FSF sense), but also cloud-based, and both of those are deal-breakers for me... so, I'll still hope someone else takes it on, but maybe I'll also eventually get to it. :)

  • @dataolle
    @dataolle 3 месяца назад +3

    Autocad and derivates has had it's own lisp dialect called AutoLISP since 1986. So using code to create models is not that new. Still cool stuff though.

    • @jondor654
      @jondor654 3 месяца назад

      Lazy query here , did autolisp have features like macros .

    • @nimbedded2618
      @nimbedded2618 3 месяца назад +1

      @@jondor654no it was a stripped down lisp

    • @jondor654
      @jondor654 3 месяца назад +1

      @@nimbedded2618 Thank you.

    • @DeveloperVoices
      @DeveloperVoices  3 месяца назад +2

      OMG, I'd not heard of AutoLISP. That's awesome. 😮
      I'll have to research it _and_ add it to the shownotes. Thanks!

    • @DavidLindes
      @DavidLindes 3 месяца назад

      @@DeveloperVoices Please do! Perhaps even do a video about it?? I've been aware of it for years, but never played with it or even seen it, really... but would like to.
      (Though yeah, would be nice if it had macros, too... sigh.)

  • @JamesSjaalman
    @JamesSjaalman 3 месяца назад

    Tsoding did wasm & client-side conputing, too.
    ruclips.net/video/V4Pd-aoaAOs/видео.html
    Yo me Tsoding looks like a good candidate for a podcast !?

  • @Aleamanic
    @Aleamanic 3 месяца назад

    Some LOGO heritage? ;-)

  • @aperson4051
    @aperson4051 3 месяца назад

    🦀

  • @adrianojordao4634
    @adrianojordao4634 3 месяца назад

    Today, i hear: Rust is soviet authority in programing. Didnt yet try compiling anything in it, but already hate it. Memory safety? My memory isnt scare of anything ;) and there is something in the eyes of rust ppl that is not healthy. A shine...

    • @AK-vx4dy
      @AK-vx4dy 3 месяца назад +7

      "I don't know anything so I must share my borrowed (😉) opinion"

    • @Tigregalis
      @Tigregalis 3 месяца назад +6

      ​@@AK-vx4dy at least the opinion is immutable (no capacity for growth)

    • @theevilcottonball
      @theevilcottonball 3 месяца назад

      @@Tigregalis I do not think that opinions should be immutable by default. So I always declare my opinons like so:
      let mut opinion;
      That way there can only one mutable reference to it, so only one person is allowed to change it at any time, or I can share it with many others but cannot change my opinion.