truck VS nomicon

Compare truck vs nomicon and see what are their differences.

truck

Truck is a Rust CAD Kernel. (by ricosjp)

nomicon

The Dark Arts of Advanced and Unsafe Rust Programming (by rust-lang)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
truck nomicon
11 87
548 1,685
5.7% 3.4%
9.2 5.5
5 days ago 20 days ago
Rust CSS
Apache License 2.0 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.

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?

nomicon

Posts with mentions or reviews of nomicon. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-07.
  • [Media] I'm comparing writing a double-linked list in C++ vs with Rust. The Rust implementation looks substantially more complex. Is this a bad example? (URL in the caption)
    6 projects | /r/rust | 7 Dec 2023
    itโ€™s even written by the same person that wrote the Nomicon (the guide to the dark arts of unsafe)
  • Rust books to read
    2 projects | /r/rust | 23 Jun 2023
    If you want to dive deeper you can always have other options but now there are concrete cases, if you want to do low level thing https://doc.rust-lang.org/nomicon/ while if you want multi thread/concurrency stuff https://marabos.nl/atomics/ . There are many many books so you will have to point yourself to what you want
  • Thread-shared boolean flag
    1 project | /r/rust | 23 Jun 2023
    Nonononono. SeqCst is the most error prone memory order: https://github.com/rust-lang/nomicon/issues/166
  • [Media] Hashmap behaviour inside a loop due to lifetime issue
    1 project | /r/rust | 22 Jun 2023
    Hope this helps. For more details, see the Rustonomicon. I referenced the subtyping chapter here extensively.
  • Unsafe Rust
    2 projects | /r/rust | 15 Jun 2023
    Nice video! Glad I could help out. This stuff is hard, and I'm still learning a lot about it myself even years later. The Rustonomicon is a great read if you haven't already.
  • Stepping up the YAML engineer game
    2 projects | /r/devops | 25 May 2023
    Have you got a moment to read through the good book , after reading through this perhaps try the Rustonomicon.
  • Questions about ownership rule
    2 projects | /r/rust | 23 May 2023
  • CppCon 2022 Best Practices Every C++ Programmer Needs to Follow โ€“ Oz Syed
    1 project | news.ycombinator.com | 19 May 2023
    That is not what UB means. Undefined Behaviour is behaviour that the compiler is allowed to assume will never happen, and which can consequently cause miscompilations due to optimisation passes gone wrong if it does in fact occur in the source code.

    It's true that Rust does not have a written specification that clearly delineates what is and isn't UB in a single place. But:

    1. UB is impossible in safe code (modulo bugs in unsafe code)

    2. There are resources such as the Rustinomicon (https://doc.rust-lang.org/nomicon/) that provide a detailed guide on what is and isn't allowed in unsafe code.

    In practice, it's much easier to avoid UB in Rust than it is in C++.

  • How to write deserializer for custom binary protocol?
    2 projects | /r/rust | 13 May 2023
    However, this is a wide topic out of scope for a Reddit comment, so maybe just read the Rustonomicon. It explains everything about data handling in Rust.
  • Performance critical ML: How viable is Rust as an alternative to C++
    4 projects | /r/rust | 2 May 2023
    The ownership model & borrow checker makes rust a bit of an awkward language in which to write complex data structures like trees and graphs. It can be done - since you can always use raw pointers & unsafe code when you absolutely need to to treat rust like C. But the language fights you, and the community can get a bit moralistic about this sort of thing. The rust nomicon is a fantastic resource for learning the limits of the borrow checker, and where and how to use unsafe code correctly. You will need unsafe less than you think you will, but sometimes you will have no choice.

What are some alternatives?

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

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

book - The Rust Programming Language

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

mdBook - Create book from markdown files. Like Gitbook but implemented in Rust

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

rust-ffmpeg - Safe FFmpeg wrapper.

build123d - A python CAD programming library

Theseus - Theseus is a modern OS written from scratch in Rust that explores ๐ข๐ง๐ญ๐ซ๐š๐ฅ๐ข๐ง๐ ๐ฎ๐š๐ฅ ๐๐ž๐ฌ๐ข๐ ๐ง: closing the semantic gap between compiler and hardware by maximally leveraging the power of language safety and affine types. Theseus aims to shift OS responsibilities like resource management into the compiler.

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

Exercism - website - The codebase for Exercism's website.

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

miri - An interpreter for Rust's mid-level intermediate representation