• 0 Posts
  • 54 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • What I do have an issue with is new users that try and have problems and immediately start whinging that “FreeCAD isn’t like what I know. And it needs to be like my favorite” Those are the lazy people that can’t be bothered to learn something new. And they should either expend the effort to learn or go back to whatever they were using

    I think that’s fair, but most criticisms of FreeCAD from people coming from other CAD packages rather fall into your latter category that you mention here:

    But if you have given FreeCAD, (or ANYTHING new in life), an honest try and you can’t get the hang of it or simply don’t like it.

    I don’t think we’re actually disagreeing in principle, just on what we perceive as the common criticisms of FreeCAD. Normally, I’ve seen people from other CAD programs get frustrated at limitations within FreeCAD or needing to work around bugs in ways that slow them down. For example, FreeCAD previously was unable to cope with multiple geometries being contained in a single sketch (I believe 1.0 now supports multiple extrudes from different sketch regions, but previously FreeCAD would throw an error), which made modeling less efficient for those coming from programs like Solidworks where this feature exists. Throw other issues like toponaming into the mix and it’s no surprise people from other CAD programs tried learning it, got frustrated (since their baseline was better than what FreeCAD could offer) and moved on.

    I agree that criticizing FreeCAD for having different workflows than other CAD programs is a bit silly, though. I don’t really care what the exact workflow is as long as it 1) works and 2) is fast, and for me FreeCAD 1.0 (and previously Realthunder’s branch) ticks all the boxes there.

    I appreciate the respectful discussion!


  • I do think the point about all CAD packages having failure paths is a little overblown. Yes, you can definitely get proprietary CAD to break but in my experience (at least with Solidworks and Fusion), it usually requires much more complex parts than FreeCAD parts. Post 1.0 the situation is definitely better though.

    You’re right that users should try following best practices from day one, but realistically most users are not going to learn everything correctly automatically. They might use an out of date tutorial, or might have just learned by tinkering themselves.

    The point I was trying to make was that because FreeCAD operates differently than other CAD programs do to one another and because it’s generally a bit more brittle and demanding of the user, I can’t say I blame anyone for not wanting to switch to it if they already have a CAD program they’re proficient with. You could call it being lazy, but from a practical standpoint there isn’t necessarily a ton to gain for a relatively large amount of time investment required to be capable of using it.

    I really hope FreeCAD improves enough one day in the new user experience department. I love the software and have been using it as my tool of choice for years now, but evidently not everyone thinks it’s worth the time investment.


  • The main benefit I think is massive scalability. For instance, DOE scientists at Argonne National Laboratory are working on training a language model for scientific uses. This isn’t something you can do on even 10s of GPUs for a few hours, like is common for jobs run in university clusters and similar. They’re doing this by scaling up to use a large portion of ALCF Aurora, which is an Exascale supercomputer.

    Basically, for certain problems you either need both the ability to run jobs on lots of hardware and the ability to run them for long (but not too long to limit other labs’ work) periods of time. Big clusters like Aurora are helpful for that.


  • I’ll mention this fix is aimed at mitigating toponaming primarily for sketch attachment. Some features still struggle with toponaming, namely chamfers and fillets. But in any case, it’s a massive step forward and makes FreeCAD much easier to recommend! Until now I’ve been using Realthunder’s fork since toponaming was such a headache to resolve manually.


  • I think that’s a little unfair. The bigger issue IMO is that FreeCAD doesn’t quite share the same workflow as other (proprierary) CAD packages, so someone coming from proprietary CAD also needs to unlearn habits that were previously fine but now potentially harmful. For example, adding chamfers and fillets in FreeCAD pretty much should only be done at the end to avoid toponaming issues, which is less of an issue in other packages.




  • Yeah we used to joke that if you wanted to sell a car with high-resolution LiDAR, the LiDAR sensor would cost as much as the car. I think others in this thread are conflating the price of other forms of LiDAR (usually sparse and low resolution, like that on 3D printers) with that of dense, high resolution LiDAR. However, the cost has definitely still come down.

    I agree that perception models aren’t great at this task yet. IMO monodepth never produces reliable 3D point clouds, even though the depth maps and metrics look reasonable. MVS does better but is still prone to errors. I do wonder if any companies are considering depth completion with sparse LiDAR instead. The papers I’ve seen on this topic usually produce much more convincing pointclouds.



  • I use a lot of AI/DL-based tools in my personal life and hobbies. As a photographer, DL-based denoising means I can get better photos, especially in low light. DL-based deconvolution tools help to sharpen my astrophotos as well. The deep learning based subject tracking on my camera also helps me get more in focus shots of wildlife. As a birder, tools like Merlin BirdID’s audio recognition and image classification methods are helpful when I encounter a bird I don’t yet know how to identify.

    I don’t typically use GenAI (LLMs, diffusion models) in my personal life, but Microsoft Copilot does help me write visualization scripts for my research. I can never remember the right methods for visualization libraries in Python, and Copilot/ChatGPT do a pretty good job at that.


  • There is no “artificial intelligence” so there are no use cases. None of the examples in this thread show any actual intelligence.

    There certainly is (narrow) artificial intelligence. The examples in this thread are almost all deep learning models, which fall under ML, which in turn falls under the field of AI. They’re all artificial intelligence approaches, even if they aren’t artificial general intelligence, which more closely aligns with what a layperson thinks of when they say AI.

    The problem with your characterization (showing “actual intelligence”) is that it’s super subjective. Historically, being able to play Go and to a lesser extent Chess at a professional level was considered to require intelligence. Now that algorithms can play these games, folks (even those in the field) no longer think they require intelligence and shift the goal posts. The same was said about many CV tasks like classification and segmentation until modern methods became very accurate.


  • I work in CV and a lot of labs I’ve worked with use consumer cards for workstations. If you don’t need the full 40+GB of VRAM you save a ton of money compared to the datacenter or workstation cards. A 4090 is approximately $1600 compared to $5000+ for an equivalently performing L40 (though with half the VRAM, obviously). The x090 series cards may be overpriced for gaming but they’re actually excellent in terms of bang per buck in comparison to the alternatives for DL tasks.

    AI has certainly produced revenue streams. Don’t forget AI is not just generative AI. The computer vision in high end digital cameras is all deep learning based and gets people to buy the latest cameras, for an example.




  • Fair enough! I think it’s more common for games to do that, but sometimes I had trouble with software on Windows that used virtualization elements themself. I probably just didn’t properly configure HyperV settings, but I know nested virtualization can be tricky.

    For me it’s also because I’m on a laptop, and my Windows VM relies on me passing through an external GPU over TB3 but my laptops’ dedicated GPU has no connection to a display, so it would be tricky to try and do GPU passthrough on the VM if I were on the go. I like being able to boot Windows on the go to edit photos in Lightroom, for example, but otherwise I’d prefer to run the Linux host and use the Windows VM only as needed.


  • I’m a fan of dual booting AND using a passthrough VM. It’s easiest to set up if your machine has two NVMe slots and you put each OS on its own drive. This way you can pass the Windows NVMe through to the VM directly.

    The advantage of this configuration is that you get the convenience of not needing to reboot to run some Windows specific software, but if you need to run software that doesn’t play nice with virtualization (maybe a program has too large a performance hit with virtualization, or software you want to run doesn’t support virtualized systems, like some anticheat-enabled games), you can always reboot to your same Windows installation directly.


  • GPU and overall firmware support is always better on x86 systems, so makes sense that you switched to that for your application. Performance is also usually better if you don’t explicitly need low power. In my use case I use the Orange Pi 5 Plus for running an astrophotography rig, so I needed something that was low power, could run Linux easily, had USB 3, reasonable single core performance, and preferably had the possibility of an upgradable A key WiFi card and a full speed NVMe E key slot for storage (preferably PCIe 3.0x4 or better). Having hardware serial ports was a plus too. x86 boxes would’ve been preferable but a lot of the cheaper stuff are older Intel mini PCs which have pretty poor battery life, and the newer power efficient stuff (N100 based) is more expensive and the cheaper ones I found tended to have onboard soldered WiFi cards unfortunately. Accordingly the Orange Pi 5 Plus ended up being my cheapest option that ticked all my boxes. If only software support was as good as x86!

    Interesting to hear about the NPU. I work in CV and I’ve wondered how usable the NPU was. How did you integrate deep learning models with it? I presume there’s some conversion from runtime frameworks like ONNX to the NPU’s toolkit, but I’d love to learn more.

    I’m also aware that Collabora has gotten the NPU drivers upstreamed, but I don’t know how NPUs are traditionally interfaced with on Linux.



  • I work in an ML-adjacent field (CV) and I thought I’d add that AI and ML aren’t quite the same thing. You can have non-learning based methods that fall under the field of AI - for instance, tree search methods can be pretty effective algorithms to define an agent for relatively simple games like checkers, and they don’t require any learning whatsoever.

    Normally, we say Deep Learning (the subfield of ML that relates to deep neural networks, including LLMs) is a subset of Machine Learning, which in turn is a subset of AI.

    Like others have mentioned, AI is just a poorly defined term unfortunately, largely because intelligence isn’t a well defined term either. In my undergrad we defined an AI system as a programmed system that has the capacity to do tasks that are considered to require intelligence. Obviously, this definition gets flaky since not everyone agrees on what tasks would be considered to require intelligence. This also has the problem where when the field solves a problem, people (including those in the field) tend to think “well, if we could solve it, surely it couldn’t have really required intelligence” and then move the goal posts. We’ve seen that already with games like Chess and Go, as well as CV tasks like image recognition and object detection at super-human accuracy.


  • One of the big changes in my opinion is the addition of a “Smart Dimension” tool where the system interprets and previews the constraint that you want to apply instead of requiring you to pick the specific constraint ahead of time(almost identical to SOLIDWORKS), and the ability to add constraints such as length while drawing out shapes (like Autodesk Inventor, probably also Fusion but I haven’t used that). It makes the sketcher workflow more like other CAD programs and requires a little less manual work with constraints.