Hacker Newsnew | past | comments | ask | show | jobs | submit | more bemusedthrow75's commentslogin

That is also in the problem description. Again, it doesn't matter whether he does or doesn't ever do it (though no game show host would ruin the game).

It is the described problem that matters.

There was so, so much writing like this at the time, people saying "well, if...".


Fittingly it looks like informed choice.


With a following wind.


You don't need to know whether he does or does not do that all the time.

Because he did it this time?

Amazed this nitpicking is still going on; it's illustrative.


I once had somebody claim the answer was wrong because we weren't sure if the contestant wanted the car or the goat.

This puzzle is like a shibboleth for nitpickers.


> This puzzle is like a shibboleth for nitpickers

More like a shibboleth for sore losers.

Just look at this thread, filled with people who got the wrong answer and want to prove that either the smartest person in the world was wrong or that the question is ambiguous.


In many developing countries if you ask somebody whether they want a flush toilet or a mobile phone, most people pick the mobile phone.


Do you think that given the context of the puzzle – about a US game show, printed in a US paper that the question is being asked in many developing countries?

Or are you looking to find fault with something for the sake of finding fault?


No, I'm making the pooint that in many parts of the world, a goat is more valuable than a car because of the lack of car infrastructure.


Incredible point. Thank you for your service.

The shibboleth for nitpickers title is locked up.


If he only opens a door when you picked the car, then you will lose 100% of the time by switching when he shows a goat.

I instead love when people get uppity about others being wrong about Monty hall while still being wrong about Monty hall!


It doesn't matter what he only does, or always does.

It matters what he did in the problem as it is described. Because that is what you're solving.


The problem as described does not specify his behavior. Only what happened. If all you know is that he opened a goat door you have learned nothing.

It could be that he always opens a goat door meaning you should switch.

It could be that he only opens a goat door if you picked the car and you should not.

It could be he only opens a goat door if you picked a goat and you should.

Probability cannot determine which of these is any more likely than the other. You have learned nothing.


"If all you know is that he opened a goat door you have learned nothing."

This is precisely where you are wrong.


Ok let’s play!

We play this game 1000 times.

33% of the time you pick the car and I show you a goat. You switch and lose 100% of the time.

66% of the time you pick a goat and I don’t show you a goat. Assuming you don’t switch because you believe this means you have an equal odd on your current door, you lose 100% of the time.

Congrats. You have lost every single round.


You've restated the problem (incorrectly) -- changed it.

There's still a goat you could show me. And it is a fact that you show me a goat. Nowhere in the problem does it suggest there is a chance you show me a goat.

I do honestly admire your dogged commitment, and I think the way you are committed shows up an important point about the article and the history of the problem.

Which is that one can quite clearly fairly argue the point, as you are doing, without resorting to misogynistic or patronising rudeness as so many did at the time!

But you're still wrong. :-)

And I'm going to leave it here.


I am curious how you feel about the "Monty Fall"/"Monty Crawl" problems linked elsewhere in the thread.[0]

For my part I am somewhat sympathetic to jncfhnb's point. The exact phrasing that Vos Savant was asked did not specify the rules that the host was required to open a door, nor that it always must be a goat door. It simply says that the host has knowledge of what's behind the doors, and in this particular iteration of the game, he showed you a goat and asked you about switching.

That does not exclude a scenario where the host is a manipulative fellow, who chose to show you the goat only because he knows you are about to win, trying to convince you to lose. A contestant on the real show would surely worry about this possibility.

Of course, the people who wrote to disagree with Vos Savant almost never said "the problem is not fully stated", they said "it's 50/50 you fool", which isn't right. Additionally, since it wouldn't be a math problem at all if we let the host have agency, it is reasonable to assume the unspoken rule that he does not, leading to Marilyn's correct 2/3rds answer.

[0]https://web.archive.org/web/20230706235720/https://probabili...


It doesn't make a difference what causes Monty to reveal a goat.

A goat behind a door the contestant did not choose is eliminated. That is all that matters. It could have been done by a Heath-Robinson machine, or a passing lonely shrubber, or elves.

Monty isn't a floating variable in the puzzle who makes choices. His choice is fixed. Which I imagine is why vos Savant adds the actually extraneous information that Monty is fully aware what is going on behind the scenes -- to underscore the concept that Monty isn't a variable.

The fact that a goat behind an unchosen door was revealed is what is crucial to the setup of the entire puzzle.

And that -- despite jncfhnb's protestations -- is information that makes the puzzle determinate.


> It doesn't make a difference what causes Monty to reveal a goat.

Oh, but it does! See the "Monty Fall" version of the problem, in which Monty accidentally trips and opens a door, which just happens to reveal a goat. In this variant there is no advantage gained by switching, because no more information was revealed about the remaining unopened door.

The information gain only happens in the original game because we know that Monty was forced to avoid the winning door in the (66% likely) case where we didn't already pick it.


Nope.

But I am going to leave this to someone else to explain. I'm tired out now.


Suppose Car is C.

The only possible options are (equally likely)

You choose A and get shown B You choose B and get shown A You choose C and get shown A You choose C and get shown B

4 options. You lose 50% of the time.

The 2 options where you would normally get the 2/3 odds are explicitly ignored when you are told Monty chosen randomly and randomly got a goat.

You choose A and get shown C or you choose B and get shown C are forbidden.

50/50 probability on the dot.

If Monty chooses with intention then the options where you choose goat and are shown goat double in probability so you get back to 2/3


They are two different problems. Map out all the scenarios exhaustively and you'll find the difference.

In both cases we were originally 1/3 chance of being right. That is not in dispute.

In the original (fully defined) "Monty Hall", Monty was going to show us a goat no matter what. It's part of the rules, he has to show a goat. So the fact that we see a goat behind the revealed door is no surprise, and no new information. But which of the two unchosen doors was the goat, is valuable information because in 2/3s of the scenarios Monty's hand was tied and he HAD to show that door to avoid revealing the remaining car.

In the "Monty Fall" problem, the fact that we see a goat at all is interesting information. This becomes more likely when we picked the car in the first place, because if we had initially picked the car, and a random other door is opened, it's 100% going to be a goat, whereas if we had picked the goat in the first place, we are only 50% likely to see a goat when a random other door is opened. Let's call the goats Alice and Bob to illustrate this point. We know we DID see a goat, but we don't know which of these equally probable scenarios led to that:

1. We picked the car and saw Alice

2. We picked the car and saw Bob

3. We picked Alice and saw Bob

4. We picked Bob and saw Alice

Notice how "we picked the car" originally had 1/3 odds but represents half the scenarios that remain possible, because there are two ways to see a goat with that start, while only one way to see a goat with the others.

This kind of brings the problem back around to similar territory as Bertrand's Box[0] where the fact that you drew a gold coin is already hinting to you that you're more likely on the "both gold" box than on the "half gold" box.

[0]https://en.wikipedia.org/wiki/Bertrand%27s_box_paradox


Since this bugged me all day, and I suspect you are the kind of person where it bugged you all day, too, here is a better description of the "fall"/"hall" distinction.

I think we can agree that these are the six possible, equally likely, configurations of the problem starting from me having chosen door 1. G1 here is "goat 1" and G2 is "goat 2". For each possible prize behind my chosen door, there are two possible configurations of the remaining prizes.

    My Door | Door 2 | Door 3
    Car     | G1     | G2
    Car     | G2     | G1
    G1      | Car    | G2
    G1      | G2     | Car
    G2      | Car    | G1
    G2      | G1     | Car
With the "Monty Hall" problem, Monty uses his knowledge to always open a goat door. Thus we see the following revealed options and resulting 2/3s probability of switching succeeding. This is the classic version of the problem.

    My Door | Door 2 | Door 3 | Monty Reveals | Switch Result
    Car     | G1     | G2     | Either        | Lose
    Car     | G2     | G1     | Either        | Lose
    G1      | Car    | G2     | G2            | Win
    G1      | G2     | Car    | G2            | Win
    G2      | Car    | G1     | G1            | Win
    G2      | G1     | Car    | G1            | Win
With "Monty Fall", the first thing that happens is a randomly chosen door, that isn't our own, reveals a goat. This is interesting. In the classic problem we were always going to see a goat next, because those are the rules Monty plays by. But in this case, the fact that we randomly found one wasn't guaranteed.

Essentially, you are blindfolded and throw a dart at the 2x6 grid of cells under the headers "door 2" and "door 3", and I tell you that the cell you've hit is a goat. What do you know about the row you hit being a switch-or-stay row? Well, half the possible goats you might've hit are in the first 2 scenarios where you should stay, and half the possible goats are in the last 4 scenarios where you should switch. So you're at 50/50. You don't have any new information to switch on.

    My Door | Door 2 | Door 3
    Car     | G1(a)  | G2(b)
    Car     | G2(c)  | G1(d)
    G1      | Car    | G2(e)
    G1      | G2(f)  | Car
    G2      | Car    | G1(g)
    G2      | G1(h)  | Car
You are just as likely to be looking at (a), (b), (c), or (d) (so you should stay) as you are to be looking at (e), (f), (g), or (h) (so you should switch). It is 50/50 in this version of the problem.[footnote]

This may make it confusing going back to the original. I seem to have shown that both ways make sense but still, how is it different? Imagine it like Monty is doing a random dice roll for which door to open, and he simply juices the outcome by correcting it to the goat door when a car door is selected, since he can't reveal a car and spoil the game. Now we have these equally possible scenarios (a) through (l) for his fair dice roll...

    My Door | Door 2 | Door 3
    Car     | G1(a)  | G2(b)
    Car     | G2(c)  | G1(d)
    G1      | Car(e) | G2(f)
    G1      | G2(g)  | Car(h)
    G2      | Car(i) | G1(j)
    G2      | G1(k)  | Car(l)
Which he corrects, avoiding cars, to:

    My Door | Door 2 | Door 3
    Car     | G1(a)  | G2(b)
    Car     | G2(c)  | G1(d)
    G1      | Car    | G2(f,e)
    G1      | G2(g,h)| Car
    G2      | Car    | G1(i,j)
    G2      | G1(k,l)| Car
Now we are back to the original game scenario where we see a goat no matter what. And we can see that 8 of the possible ways we might have arrived at seeing this goat come from "switch" rows while 4 come from "stay" rows.


[footnote] If this part of the explanation is bugging you, consider these related problems:

Problem 1. There are two opaque, externally identical bags, each containing 2 marbles. One bag contains 2 black marbles. The other bag contains 1 black marble and 1 white marble.

You choose a bag and draw a marble from it, without looking inside. The marble is black. What should you conclude are the odds that the remaining marble in the chosen bag is black?

Answer: .elbram kcalb dnoces a dnif ot ylekil sdriht-owt era ew oS .gab etihw-dna-kcalb eht morf si eno ylno dna ,gab kcalb-lla eht morf era elbram kcalb a werd ew hcihw ni soiranecs elbissop eht fo owT

Problem 2. There are three opaque, externally identical bags. One bag contains 2 black marbles. The other two bags each contain 1 black marble and 1 white marble.

Again you choose a bag and draw a marble from it, without looking inside. The marble is black. What should you conclude are the odds that the remaining marble in your chosen bag is black?

Answer: .tnecrep ytfif era elbram kcalb dnoces a gniward fo sddo ruO .gab kcalb-lla eht nesohc gnivah fo sddo ytfif-ytfif ta won era ew oS .sgab etihw-dna-kcalb tnereffid owt eht morf era owt dna ,gab kcalb-lla eht morf era elbram kcalb a werd ew hcihw ni soiranecs elbissop eht fo owT

You can connect Problem 2 to our random door opening and a goat being revealed, in the Monty Fall (with an F) problem.


Noooo

It is not the fact that a goat is behind the door. It is the fact that a goat door would always have been opened! These two facts are not the same!


I'm sorry what now? Stop second guessing the puzzle which is clearly stated.

I'm so, so done with this now that I am actually going to render inoperable my only HN account so I cannot possibly come back to this, or any other thread.


It is NOT STATED in THIS VERSION OF THE PROMPT that monte will always open a door and that it will always be a goat door.

It is simply stated that on one play of the game, Monte CHOSE to open a door and it was a goat. If this is truly all you know, you have learned nothing.

It is only useful information if monte explicitly opens a goat door for you. If he opens a door at random and gets goat your information gain goes away even if it’s the same door!

I’ve literally mapped it out for you else where. There’s only 4 outcomes. You can check yourself.

2:2


I have not restated the problem.

You’ve incorrectly assumed that I would be showing you a goat in every case. But that is not included in the prompt. All you know is that you were shown a goat on one play. This is possible in the setup I’ve listed. You landed in that 33% case where you chose a car.

There is nothing in the prompt that says we are not playing my variant of the game.

Being told that you SAW a goat does not mean you would ALWAYS SEE a goat if the previous conditions had gone differently. And that is why you’re wrong :)

Again > all you know is that he opened a goat door


> You’ve incorrectly assumed that I would be showing you a goat in every case. But that is not included in the prompt.

Yes. It is. It is a fixed part of the scenario. Monty opens a door and shows you a goat. He knows it is going to be a goat (he is "well-aware of what is going on behind the scenes"). He's showing you a goat as part of the problem which is: should you switch?

Again: think through what the problem actually SAYS:

> Imagine that you’re on a television game show and the host presents you with three closed doors. Behind one of them, sits a sparkling, brand-new Lincoln Continental; behind the other two, are smelly old goats. The host implores you to pick a door, and you select door #1. Then, the host, who is well-aware of what’s going on behind the scenes, opens door #3, revealing one of the goats.

> “Now,” he says, turning toward you, “do you want to keep door #1, or do you want to switch to door #2?”

No matter what: the goat Monty shows you is not a matter of chance. It is a fixed part of the problem. It's there in writing: he shows you a goat. Full stop.


No! Read the prompt very carefully.

> Imagine that you’re on a television game show and the host presents you with three closed doors. Behind one of them, sits a sparkling, brand-new Lincoln Continental; behind the other two, are smelly old goats. The host implores you to pick a door, and you select door #1. Then, the host, who is well-aware of what’s going on behind the scenes, opens door #3, revealing one of the goats.

You know nothing except you picked door 1 and then he decided to show door 3.

You do not know if he would have shown door 3 had you picked door 2! This is NOT in the prompt. You cannot assume that.

The experience of this contestant is fully and equally possible within my version of the game too!


> You do not know if he would have shown door 3 had you picked door 2! This is NOT in the prompt. You cannot assume that.

Monty isn't a contestant. Monty's action and outcome is part of the fixed description of the problem. He opens one of the doors and reveals a goat. Full stop.

If you think revealing one of the two goats (the other of which might or might not be behind your current selection) isn't information of value in assessing whether your chances in that scenario are improved by switching, I'd encourage you to consider why.

And now I really must leave it to someone else to help you, if they will. But I very much appreciate your politeness.


> Monty isn't a contestant. Monty's action and outcome is part of the fixed description of the problem. He opens one of the doors and reveals a goat. Full stop.

Incorrect and I invite you to cite the line of the prompt that says otherwise. This is the critical missing piece of information that makes it the commonly understood “Monty hall problem” and not the improperly stated prompt that we actually have.

“Monty did this” != “Monty would have done this regardless of your previous choices”.

Unless this is stated, you just have an incomplete problem. If you don’t know the mechanics by which Monty decides to share information, it does not give you probabilistic info.

Probability questions frankly often require you to make judgements about the probable starting conditions based on information given so far. You frequently need to recognize that your current situation is the result of prior processes that are or are not defined.


No, you're solving the wrong thing. This is a thought experiment, not a real life scenario with ambiguity.

In this thought experiment, MH will always open a door to a goat on purpose and always ask if you want to switch, because the entire point of the thought experiment is that people find the 2/3 odds if you switch unintuitive and baffling, leading to extremely long thread chains.

You're doing the equivalent of saying "why can't we wait and see if the cat meows" when talking about the Schrödinger's thought experiment. It can't because that's not the point of the exercise.


With all due respect, no. Please don’t jump in at the end of a long thread and bring it back to the beginning. We are not discussing “The Monty Hall Problem”. We are discussing the specifics of the actual original prompt with its failure to document all assumptions.


This is something I remember from the time.

I could not grasp the probability maths (still shit at it, sorry Ms Von Savant) but I could write a program to experimentally demonstrate it, so I did.

In QBasic. Because that's what we had and we were happy.


That’s exactly what I did. In FreeBASIC.

The way the problem works started coming together in my head as I coded it. The code’s structure reflected the problem’s structure. I realized I previously misunderstood something about the problem statement. Later, I read someone saying many mathematicians got this problem wrong because of how it’s worded.

So, it may be challenging, not because probability was challenging, but because it was unclearly specified. That’s the cause of many software errors, too.


It's not unclearly specified. It's very tight.

People who get it wrong are usually projecting some implied understanding onto it, which is why they get it wrong.

Which is the point of the problem. It's designed to reveal this tendency in analytical thinking leading to unexpected outcomes. You get it wrong, you're gobsmacked, you understand why, you gain some enlightenment from it. It's fun to be wrong in ways you later understand. (This is one of the thrills of programming: that moment during debugging when you shriek with joy: "YES, IT BROKE!")

The fact that it also exposes the way some overly confident people lash out with anger that exposes other biases is the point of the article, I think.


I could see that. Both that it could be the intention of the problem statement and what you say it achieves. It had that effect on me.


It was the 100-door variant (described in the article) that was my key to properly understanding the result.


Yeah. I think my program code was ten doors or something.

It was years before I understood the actual lesson here -- both the probability lesson and also the way it hints at the fundamental truth that in life, binary choices may have been weighted in ways you don't understand, perhaps by the people asking you to make the choice.


Ha, I did the same thing after first reading about the problem. I understood the probabilities from her explanation, but it felt more indisputable after seeing the results play out after a thousand tries. Guess you could call it a "Monty" Carlo simulation.


Integrity.

I will get modded down and probably flagged for this because it's not just dissent but existential threat on HN, but this means:

Don't ever use AI generated content [0]. The pictures, the words, the video, the voices, any of it. Because not caring about creative choices poisons your integrity.

e.g. for illustrations:

- if you can draw well, do that. Find a way to capture them consistently, use those

- if you can manage a half-arsed sketch, do that. Find a way to capture them consistently (or use some of the minimal tricks in an iPad drawing app to fix them up). Make a virtue of it.

- if you can't draw at all, do you know someone you could ask? Or are there relevant sketches in the Flickr Commons or whatever. Or get just good enough that you can make a virtue of being crap at it.

For photographs:

- if you can photograph something relevant, do that

- if not, use a stock library. Pay, preferably, but credit if not. Or use the Flickr Commons and find something relevant

Failing all this, illustrate with something irrelevant but contemporaneous. Write your stuff, and shoot photos on your phone of your day as you write. Use a photograph from your phone that captures the day you wrote the article. Write a little caption to do it. Make a virtue of this sort of separate parallel stream of your content.

But no AI-generated content. Ever.

[0] except maybe when you're writing about AI-generated content. But please, if you can, find something else to write about. Integrity 102: don't shoehorn AI into every conversation.


From using _all_ other image editors, you mean.

And that is the problem. People who have learned tools from what is now an established, multi-editor, digital medium, find they can't do what they wish to do.

I suspect very few even try to make this jump anymore.

GIMP still requires artists to think about and develop their workflow in the sequence that works best for GIMP.

Waving them away like this is a mind trick that the GIMP community should simply ban outright; it's devastating.

(Unless you mean this satirically and it's just gone over my head)


I learned on paint shop pro and never had substantial problems with gimp.


Krita is really very impressive.

I am that kind of decades-long hosted-linux-from-a-Mac-desktop user who checks out desktop linux every six months or so to see if the daily driver situation is ready.

I edit quite a lot of photos and even though Darktable is a mess, I could use it and it's not the only option. I edit vector graphics and I think Inkscape is fine. I like FreeCAD. All of my coding tools appear to run in Electron, etc. etc.

But GIMP isn't an option. It's not even close to being what basic quick correct photo editing needs in terms of a workflow. And I'm simply never going to change what is not really a particularly deep or exotic workflow to fit it.

Krita is _sooooo_ close, and it's not even trying to be a photo editor first and foremost.


Exactly this -- as I just simultaneously pointed to in my sibling comment about the wonderful rebirth of FreeCAD.


Another really long-lived package, FreeCAD (it's about six years younger), has tremendous parallels:

- bad (in places better called solipsistic) UX

- underlying architectural issues from its dependencies (e.g. OpenCascade's OCCT and Coin3D)

- a flood of competing workbenches and plugins so users struggle with initial workflow, many abandoned or undermaintained

- something of a reliance on knowledge of Python scripting to solve advanced issues

- and (akin to GIMP avoiding non-destructive-editing for two decades) a fundamental architectural issue: topological naming problems that other CAD packages have solved

But things in FreeCAD land are changing really fast -- there's a TNP implementation coming quite soon to core FreeCAD, there's a core assembly workbench, a materials system and really significant GUI and UX improvements.

The reason is things are changing is that that people central to FreeCAD looked across the open source landscape to Blender, and saw how a project can be run, and how commercial companies could consult on top of it.

Everything has changed within a matter of three years. Despite its issues, FreeCAD is now exciting to watch.

Whereas GIMP seems to still be circling around looking for the best solutions to things they never finish. Krita has become the thing GIMP could have been, and it is nine years younger.


> Whereas GIMP seems to still be circling around looking for the best solutions to things they never finish. Krita has become the thing GIMP could have been, and it is nine years younger.

GIMP is critically underfunded. Seriously I think it's like one guy making most of the changes[0].

> 7 core developers contributed 10 or more commits in GIMP’s main repository:

> Jehan: 649 commits

> Jacob Boerema: 64 commits

> Nikc: 50 commits

> Daniel Novomeský: 25 commits

> lloyd konneker: 25 commits

> Lukas Oberhuber: 18 commits

> Niels De Graef: 15 commits

People keep asking the world of Gimp as if they have even 1% of Adobe's funding. IIRC no one is working on Gimp full-time, while Krita is able to pay four full-time developers[2].

1. https://www.gimp.org/news/2023/01/29/2022-annual-report/

2. https://docs.krita.org/en/KritaFAQ.html#license-rights-and-t...


IIRC, GIMP chose this path. Krita got serious about funding and GIMP didn't. Krita has two straightforward donation pages (https://krita.org/en/support-us/donations/ or https://fund.krita.org/) meanwhile GIMP discourages direct donation to the project (https://www.gimp.org/donating/)

In truth, GIMP maintainers deeply enjoy the control that "no strings attached"/"no obligation" development brings them. They've alienated most potential sponsors because they're happy with their lack of results. The missing funding angle only matters as an excuse for their own disorganization.

I haven't double checked but I think at least one of your listed names is banned from twitter.


> I haven't double checked but I think at least one of your listed names is banned from twitter.

Even if true, what does it have to do with anything? :)


Stole my response. At this point being banned from Twitter is a badge of honor in some circles.


I mean, anyone can report anyone for whatever and you will never reach tech support, because tech support at big social platforms never ever responds. Facebook, Twitter, YouTube are all the same. You have to have some serious connections to get a ban lifted.

Actually, I'm a former team member and my personal account is banned on Twitter (which I discovered when I tried to log in after half a year of absence). He could be thinking of me, in fact! :)


> GIMP is critically underfunded.

Not really, no. They have sufficient funds to hire several developers for several years full-time. They are just dragging their feet to organize themselves into a non-profit and start using those funds. The latest news is that they will probably finally announce a non-profit later this year. Hopefully.


I tried to use FreeCAD a few years ago to do some simple object modeling for 3D-printed prototypes. The GUI was so complex and idiosyncratic that I found it more efficient to just learn OpenSCAD's modeling language instead (which served me really well).


Yes, absolutely. It was where GIMP still is now, for artists.

It's definitely been idiosyncratic (if not solipsistic), and still has IMO some maddening features. And it still [0] has a core flaw that is being mitigated.

OpenSCAD is actually very limited in ways that don't become obvious until you get into a bRep CAD system at least. But it's how I also got into CAD. I wanted to know there was at least something I'd be able to use for my own ideas, and the fact that OpenSCAD exists is definitely a blessing.

If you like it, you might find Build123D [1] interesting: this is a Python (and very pythonic) environment built around the same kernel as FreeCAD.

But I got from OpenSCAD to FreeCAD and I am very glad of it; it's an amazingly capable bit of software once you get past the pain (in the same way Blender is, I gather).

FreeCAD 0.21 has many nice new things in it. 0.22-dev has more, and 1.0, due at some point in this year now, is going to be a pretty major leap forward.

And at least now we have the amazing Mango Jelly Solutions videos on youtube. I recommend them; you'll learn the right way into FreeCAD.

GIMP is not an amazingly capable bit of software for typical designers. It's broken and hobbled.

[0] the topological naming problem: being corrected in the core distribution at the moment as they head to 1.0

[1] https://github.com/gumyr/build123d


Thanks for the pointer to Build123D -- I really like the idea of building 3D models as code, so this might be a great alternative.

My use case back then was working on prototypes for plastic products we'd eventually be injection molding. I found OpenSCAD to be an extremely effective tool for quickly iterating on designs. I'd tweak some parameters or code, 3D print a batch of samples, hand them out to testers for feedback, rinse and repeat.

Then, once the design was production ready, we'd hand off the final protos to the engineers who would design the injection molds. I'm sure they were using Solidworks or the like. OpenSCAD added a lot of value in the early design phase of these projects, but wasn't involved past prototyping, so I suppose we never encountered its limits.


FWIW I just picked up FreeCAD a few weeks ago with zero prior CAD experience and I was able to create a few simple widgets for my 3d printer (a shower soap dish and a bottle for my daughter's toy doll) without too much fuss (took a few hours of learning and few hours of actual CAD work). I did have to ask a few questions on the FreeCAD forum (and got a bunch of friendly, helpful responses), but that's to be expected learning complex software like a CAD program.

In short, the latest version of FreeCAD (I'm using 0.21.x) is absolutely approachable for beginners and apparently works well for advanced users. I'm quite impressed with the project!


> underlying architectural issues from its dependencies (e.g. OpenCascade's OCCT and Coin3D)

Curious to know more. I occasionally look at CAD kernels and wonder about writing a C# wrapper. Is OCCT to be avoided?


OCCT is definitely difficult.

I am almost as far as you can get from an expert (and I am sure there is one here who can explain it better and hopefully correct me) but:

For example the TNP issue derives from OCCT (or something in the stack close to it, I am not exactly sure) not really handling face naming at all.

So if you want to avoid topological naming issues (which is a hard problem in CAD), you apparently have to do some work to track before and after and reconstruct your face naming from either side of the OCCT black box.

https://wiki.freecad.org/Topological_naming_problem

https://forum.freecad.org/viewtopic.php?t=27278

Then there are various fairly entrenched issues to do with filleting and chamfering. Basically, both these operations will fail if a chamfer or fillet would completely consume an existing edge. It also sometimes creates impossible objects when filleting, or used to.

Booleans can be slow.

And more generally, it seems if you track the FreeCAD project that OCCT can be inscrutable when things fail; error messages aren't the greatest etc.

The flip side of OpenCascade is that it seems to be highly portable and has for example been compiled to JS with Emscripten for this astonishing thing:

https://zalo.github.io/CascadeStudio/

It's a monumental open source project, for sure, and it's definitely not nothing that we have an open source CAD kernel; these are projects that perhaps have to extend beyond the working life of an individual developer if they are to be stable. And there are loads of projects built around it. So it's absolutely consequential and we're lucky to have it.


If you want an open-source kernel, you don't have much choice.

Truck and Fornjot are incomplete and not quite ready for prime-time. libfive is FREP, not BREP.

OCCT is the useable of all. But it also has old architecture, all sorts of imperfections (some of them described by the other guy here), and the code quality isn't great, I'm told (by much more experienced people).


Other CAD programs haven't solved toponaming issues, they mitigated them. You can still break a model in SW and other commonly used 3D CAD programs, it's just more difficult to do.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: