Writing a CAD Language in Rust (with Adam Chalmers)

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 43

  • @swannie1503
    @swannie1503 2 หลายเดือนก่อน +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!

  • @AK-vx4dy
    @AK-vx4dy 2 หลายเดือนก่อน +12

    Legendary AutoCAD sported Lisp as i heard from olders

    • @EdwardPsCL
      @EdwardPsCL 2 หลายเดือนก่อน +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 27 วันที่ผ่านมา

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

  • @robgrainger5314
    @robgrainger5314 2 หลายเดือนก่อน +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

  • @aus10d
    @aus10d 2 หลายเดือนก่อน +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 2 หลายเดือนก่อน +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 2 หลายเดือนก่อน +2

      you mean another c++

    • @carlriemann925
      @carlriemann925 2 หลายเดือนก่อน

      @@wassim-akkari better than c++

    • @AK-vx4dy
      @AK-vx4dy 2 หลายเดือนก่อน +2

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

    • @joshring8563
      @joshring8563 2 หลายเดือนก่อน +2

      That would be amazing

  • @theevilcottonball
    @theevilcottonball 2 หลายเดือนก่อน +3

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

  • @DavidLindes
    @DavidLindes 2 หลายเดือนก่อน

    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. :)

  • @gcewing
    @gcewing หลายเดือนก่อน +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.

  • @nejathakan5521
    @nejathakan5521 2 หลายเดือนก่อน +1

    ❤ Nice

  • @budiardjo6610
    @budiardjo6610 2 หลายเดือนก่อน

    wow, another ambitious project in rust.

  • @stergios426
    @stergios426 2 หลายเดือนก่อน +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.

  • @tilakmadichettitheappdeveloper
    @tilakmadichettitheappdeveloper 2 หลายเดือนก่อน

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

    • @theevilcottonball
      @theevilcottonball หลายเดือนก่อน

      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 หลายเดือนก่อน

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

    • @theevilcottonball
      @theevilcottonball หลายเดือนก่อน

      @@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.

  • @adamsakym3263
    @adamsakym3263 2 หลายเดือนก่อน +1

    How different is this from CadQuery?

    • @theevilcottonball
      @theevilcottonball หลายเดือนก่อน

      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 2 หลายเดือนก่อน +2

    I use OpenSCAD.

    • @theevilcottonball
      @theevilcottonball 2 หลายเดือนก่อน +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 2 หลายเดือนก่อน

      @@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 2 หลายเดือนก่อน +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 2 หลายเดือนก่อน

      Lazy query here , did autolisp have features like macros .

    • @nimbedded2618
      @nimbedded2618 2 หลายเดือนก่อน +1

      @@jondor654no it was a stripped down lisp

    • @jondor654
      @jondor654 2 หลายเดือนก่อน +1

      @@nimbedded2618 Thank you.

    • @DeveloperVoices
      @DeveloperVoices  2 หลายเดือนก่อน +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 2 หลายเดือนก่อน

      @@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.)

  • @aperson4051
    @aperson4051 2 หลายเดือนก่อน

    🦀

  • @JamesSjaalman
    @JamesSjaalman 2 หลายเดือนก่อน

    Tsoding did wasm & client-side conputing, too.
    th-cam.com/video/V4Pd-aoaAOs/w-d-xo.html
    Yo me Tsoding looks like a good candidate for a podcast !?

  • @Aleamanic
    @Aleamanic หลายเดือนก่อน

    Some LOGO heritage? ;-)

  • @adrianojordao4634
    @adrianojordao4634 2 หลายเดือนก่อน

    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 2 หลายเดือนก่อน +7

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

    • @Tigregalis
      @Tigregalis 2 หลายเดือนก่อน +6

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

    • @theevilcottonball
      @theevilcottonball หลายเดือนก่อน

      @@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.