PySdfScad VS truck

Compare PySdfScad vs truck and see what are their differences.

PySdfScad

Openscad interpretor written in python and using signed-distance-functions (by traverseda)

truck

Truck is a Rust CAD Kernel. (by ricosjp)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
PySdfScad truck
6 11
16 551
- 3.3%
10.0 9.2
about 1 year ago 1 day ago
OpenSCAD Rust
- Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

PySdfScad

Posts with mentions or reviews of PySdfScad. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-19.
  • CAD Sketcher, free and open-source project bringing CAD like tools to Blender3d
    8 projects | news.ycombinator.com | 19 Feb 2023
    > To clarify, can this method be used as a fully functional replacement to BREP for a mechanical (machine design) CAD system?

    I think so, but there are some open problems. Also it depends on the senior people. Inigo Quilez is a world class expert in this domain, and for the most part we're copying his work, get him on board and you'll be golden.

    Fundamentally it makes sense, BREP is about representing boundaries and you can definitely use SDFs to represent the area under a boundary (infinite SDFs are possible, although obviously you can't turn them in to a mesh). Enclose a volume with boundaries and you can mesh that out just fine. A bit different from CSG-based SDFs, but entirely plausible.

    >what approach would you recommend?

    If I was to do this I'd take the constraint solver from solvespace (same one used in this post) and start using it to generate SDFs. At that point you're already 80% of the way to your end goal.

    I mean if I was personally to do this I'd start by making a system that implements everything openscad can do, try to get some funding going, and than add in a solvespace based workbench for doing 2D cad that you can import into an openscad-ish language. You can see my efforts here: https://github.com/traverseda/PySdfScad

    That's tackling it from a different angle than BREP though. I think that openscad but better is a surprisingly viable thing though, especially if you use it to do things like generate the gears/screws/whatever you import into your BREP based CAD project. Use scriptable CAD as the underpinning for more advances CAD.

    > How long would you estimate it would take for three full time senior developers to get a useful system out?

    Well define "useful"? Honestly I think you can get 80% done in under a month. I built the first pysdfscad in a week or two and replicated 80% of openscad's features. Fogleman built the library I used for pysdfscad in under a month.

    I'd expect something pretty good in under a year at that kind of rate. There would be some outstanding problems, like it would be a challenge to figure out how to apply a fillet/chamfer to an edge, but not an insurmountable challenge. Geometry import is another place where you're going to spend a lot of time/money but is very important.

    So let's say two or three years with three very competent seniors working on it to get a pretty good CAD program, with a GUI.

  • I created an openscad interpreter that supports chamfers and fillets
    1 project | /r/3Dprinting | 17 Feb 2023
  • Show HN: PySdfScad,an openSCAD interpretor using signed-distance-functions
    1 project | news.ycombinator.com | 15 Feb 2023
  • Show HN: PySdfScad, my early work on an openscad interpretor with fillets
    1 project | news.ycombinator.com | 10 Feb 2023
  • Ask HN: What would be your stack if you are building an MVP today?
    47 projects | news.ycombinator.com | 26 Jan 2023
    Depends on exactly what I'm making, the answer is probably different if I'm making like a chat app or something more data centric.

    For something really minimal, an internal tool, I'd probably use grist. Grist is a "no code" spreadsheet program that is open source and works on a relational database. I just threw together an inventory management system for my weekly dnd group in a few minutes, and I've shared it with the group. I find the relational mindset grist uses a lot easier to reason about than traditional spreadsheets.

    The next level up would be django with htmx. Very minimal javascript, I might embed a javascript "applet" like a map into it if needed. This covers 99% of data driven apps.

    If I wanted to build something like say discord I'd probably use a pretty similar stack for the MVP, but with server-sent-events (htmx with server sent events is nice) and web components for more complicated interactions. That's probably why I'm not in charge for building complicated single page webapps with a lot of interdependent state though. I maintain this approach should work but haven't had a real chance to test it in the wild.

    If I'm writing CAD software I'm probably going with QT/python/(numpy/jax/compute-shaders/sympy/etc). Python might not be the fastest, but when you're accelerating it with one of those machine learning libraries it can be really powerful. I've actually been working on something CAD-ish using that stack here: https://github.com/traverseda/PySdfScad

    That's probably roughly the same stack I'd use for things like computer vision, machine learning, etc. Ironically anything where performance is important I'd probably choose python over a compiled language.

    Mind you the QT python documentation is really not great, for a really minimal MVP I might swap qt out for pyimgui which is amazing for rapid prototyping but is going to be a real pain to do things like syntax highlight a text editor or embed HTML content.

    Embedded electronics? Probably micropython on an ESP32 for an MVP. A REPL on your microcontroller is really nice. Robotics I'd probably use buildroot to build a custom linux distro.

    I don't have much experience with mobile development, so I'd probably end up using QT with python and pyqtdeploy, but that's not an approach I'd recommend anyone else follow. I'm keeping an eye on Tauri in that space, although I really wish they made it easier to bundle in things that aren't single page javascript web apps (like a python application).

    So yeah, mostly I'd use python. Master of some trades, jack of a bunch of others, it's flexible and powerful enough that I feel happy to have specialized in it, even if deploying apps to end users can be finicky and annoying. I'd avoid the javascript ecosystem as much as possible, and where I'd have to use javascript I'd prefer to make self-contained web components.

  • GitHub - traverseda/PySdfScad: Openscad interpretor written in python and using signed-distance-functions
    2 projects | /r/openscad | 16 Jan 2023

truck

Posts with mentions or reviews of truck. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-19.
  • Text-to-CAD: Risks and Opportunities
    12 projects | news.ycombinator.com | 19 Oct 2023
    I agree 100%.

    Truck[1] and Fornjot[2] are recent attempts in the Rust space, both are WIP.

    But both seem to be going the traditional way. I.e. B-Rep that can be converted to (trimmed) NURBS.

    I think if one wanted to incorporate the last 50 years of computer science, particularly computer graphics, one needed to broaden the feature set considerably.

    You need support for precision subdivision surface modeling with variable radius creases (either via reverse subdivision where you make sure the limit surface pass through given constraints or using an interpolating subivision scheme that but has the same perks as e.g. Catmull-Clark).

    Then you need to have SDF modeling ofc.

    Possibly point based representations. If only as inputs.

    And traditional B-Rep.

    Finally, the kernel should be able to go back and forth lossless between these representations wherever possible.

    And everything must be node-based, like e.g. Houdini. Completely non-destructive.

    [1] https://github.com/ricosjp/truck

    [2] https://github.com/hannobraun/fornjot

  • Truck: CAD Kernel in Rust
    1 project | /r/hypeurls | 8 Mar 2023
    3 projects | news.ycombinator.com | 8 Mar 2023
    I think you confuse the book/tutorial with the documentation on docs.rs.

    My impression is that the former is very much a work in progress. I never looked at it until now.

    The latter (and the examples in the resp. crates) is what you want to look at to see the kernel being used. E.g. https://github.com/ricosjp/truck/blob/master/truck-modeling/...

    The main README has links to all the documentation of the crates.

  • CAD Sketcher, free and open-source project bringing CAD like tools to Blender3d
    8 projects | news.ycombinator.com | 19 Feb 2023
    There are two Rust projects working on parametric kernels I'm aware of.

    The first one, Truck[1] seems to have a company behind it, Ricos Ltd, that look like they to know what they're doing[2]. The tweet shows their product using functionality from Truck (the frontend is not OSS AFAIK).

    Fornjot is an ambitious project IMHO. Their kernel is in a separate crate[3].

    As for OSS code that could be a good base to either use (or port to something like Rust) for someone to write their own kernel is Ayam [4], the oldest OSS 3D NURBS modeler that is still being developed.

    [1] https://github.com/ricosjp/truck

    [2] https://twitter.com/RICOS_ltd/status/1550390552482693120

    [3] https://crates.io/crates/fj-kernel

    [4] https://ayam.sourceforge.net/

  • Fornjot (code-first CAD in Rust) - Weekly Dev Log - 2022-W21
    2 projects | /r/rust | 30 May 2022
    I've been following your project with interest and was wondering if you were familiar with Truck. Its another project implementing a CAD kernel in Rust.
  • Fornjot – The world needs another CAD program
    9 projects | news.ycombinator.com | 27 Mar 2022
    I will definitely keep reading and learning, as well as gaining practical implementation experience. We'll have to see how that goes, and what the solution will end up being.

    > Another direction you could take is to define just the API, and use the opencascade kernel (like FreeCAD) until the rest of your code is ready.

    A CAD kernel is the central dependency for any CAD program, and I feel that it would be wrong to just use one and accept its limitations. I need to be able to take ownership, to work on it directly. OpenCASCADE is a huge pile of C++ code, which is the opposite of all that. (Not saying it's wrong to use in general, just that I'm the wrong guy to work on a huge pile of C++ code.)

    I've considered using Truck[1], but decided not to do that for now. I really want to see what I can come up with. If that doesn't work out, at least I'll be in a much better decision to decide what other option would be best.

    [1] https://github.com/ricosjp/truck

  • Fornjot: A next-generation Code-CAD application
    18 projects | news.ycombinator.com | 9 Mar 2022
  • Hey Rustaceans! Got an easy question? Ask here (3/2022)!
    5 projects | /r/rust | 18 Jan 2022
    For a specific example: I am interested in working with 3D objects using Rust (maybe this is too ambitious for a newbie!) so I found a CAD kernel crate called truck which seems to be crate built of smaller crates and implementations of other libraries. How would you go about finding the most relevant info and where to start? Should I start by understanding all the smaller parts such as the gui/gpu rendering modules, or is that irrelevant and I can focus on figuring out the top level?

What are some alternatives?

When comparing PySdfScad and truck you can also consider the following projects:

manifold - Geometry library for topological robustness

fornjot - Early-stage b-rep CAD kernel, written in the Rust programming language.

SolveSpace-Daily-Engineering - app4soft's engineering experiments in SolveSpace — FLOSS parametric 2D/3D CAD & CAE (.slvs files repository) Follow ➡ https://twitter.com/search?q=solvespace+from%3Aapp4soft

gluon - A static, type inferred and embeddable language written in Rust.

supabase - The open source Firebase alternative.

CascadeStudio - A Full Live-Scripted CAD Kernel in the Browser

deno - A modern runtime for JavaScript and TypeScript.

build123d - A python CAD programming library

jetstream - Tailwind scaffolding for the Laravel framework.

opencascade.js - Port of the OpenCascade CAD library to JavaScript and WebAssembly via Emscripten.

redwood - The App Framework for Startups

Kind - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind2]