> On that note, mandating an SD card slot as a requirement would be a very much welcome next step.
Fuck that. Who are you to subjugate us with your preferences. Limiting what a phone can possibly be by mandating features such as SD cards is so unimaginative. There's always a segment of HN that truly wants to be tyrants and impose their preferences on the entire marketplace and consumers.
Nothing is stopping something like Framework laptops from existing in the marketplace right now besides demand. Y'all can all celebrate it on HN in your bubble but to mandate that the entire market goes in this direction reveals your frustrations more than anything.
You hate that people don't share your preferences and would go so far as to use the legal system to distort the marketplace just to satisfy your own preferences. It doesn't matter if it puts constraints on what a product can be, so long as it fulfills your needs.
So basically, it's a simpler path to impose your preferences on others than it is to actually do any work to build something or find something that matches your preferences.
Completely selfish. Just admit you have disdain for everybody else and you think you know better than the marketplace about what people want, and therefore should have the authority to dictate how everything should be designed and built while doing none of the work.
A healthy reaction to this frustration is to go build the thing you want, show people that it's better, and compete against the status quo - giving everybody more options and choices. You're not there though, and neither are the societies in the EU.
It's sad to see this kind of mindset take over Europe and it's clear it holds back Europe of reaching the heights of innovation and creativity that the world is hoping to see come from a continent that once pushed humanity to higher levels of existence and consciousness.
Now go ahead an explain how having a microSD¹ slot may hurt someone who has a device that reads/writes data².
Not hurt shareholder value. I'm talking about people³ here.
I'll wait. Very curious to hear your perspective here.
_____
¹ Technology that has existed for 2+ decades at this point, is the defacto standard for removable storage in phones, laptops, cameras, audio recorders, etc, supported by devices that sell for $5 new and relied on by the highest end pro gear, current spec making it forwards and backwards compatible for the foreseeable future.
Something that takes virtually no physical space and costs virtually nothing to add to a device that already needs to operate on gigabytes of data (we're not talking about forcing that, say, on a thermostat).
² Particularly, one which can run into a "Storage full" error.
³ Physical human beings (including, but not limited to, the end users), and specifically not your (or some CEO's) feelings about it.
> you think you know better than the marketplace about what people want
For reason, otherwise grown up people still believes there's a fantasyland “market” that automatically adapts to what consumers want.
I'm afraid to inform you that Santa ain't real, it's your parents who bring you gifts for Christmas no matter what you dreamed about, and it's the companies product department who brings you the features that end up in your phone, no matter what the consumers really want.
Nobody ever asked for uninstallable bloatware, yet they are in every phone. Nobody asked for a new redesign that makes you wonder where the damn button you want is now located. And so on.
I was working on an SDF-based CAD tool but gave up when I couldn't find a good way to do fillets.
It's very deceptive because the easy way works so well (Use smoothmin instead of min and you get smooth blends for free! You can even use a circular approximation of smoothmin and get proper fillets!). But when you want the user to be able to pick a couple of surfaces and fillet between them, it gets really hard.
It worked by rewriting the expression tree so that the blend arguments become sibling nodes and then applying the blend to the union/intersection that is their parent.
That works every time if you only want 1 single targeted blend, but if you want several of them then you can run into unsatisfiable cases where the same object needs to blended with several others and can't be siblings of all of them.
So I gave up :(. For me, CAD without fillets and chamfers is no CAD at all.
(Also, apropos for this thread: the discontinuity in the chamfer was a floating point precision problem...)
Well, user picking a couple of surfaces is literally an operation on a boundary representation, so of course it's a PITA with fields :)
I think the future is CAD is combined fields and breps. They're literally dual, one is covariant, the other contravariant (breps facilitate pushforwards, fields facilitate pullbacks).
One without the other is necessarily going to be limited in some way.
The distance field tells you the distance to the nearest surface at any point. You can have a "surface id field" tell you the id of the nearest surface to any point, and then when you raymarch to find the intersection of a line with a surface, you can read out the ID from the ID field after finding the intersection point. (Of course the ID field is also implemented as a function mapping points to surfaces).
So when the mouse is hovered or clicked in the 3d view you can easily find the ID of the surface under the pointer, and you can draw that surface in a different colour to show it is selected. No boundary representation needed.
The hard part is, given 2 surface ids, how do you add a fillet between them in the general case?
Another idea I had was to set the fillet radius on every min/max node based on the derived surface id's from the child nodes, but I couldn't find a good way to do this without making the field discontinuous.
That depends on what we mean by surfaces, and in the case of filleting, the user really wants to be picking adjacent faces (as in: an edge between two adjacent faces). That, or even a region to roll a ball along to generate a fillet.
The semantics of fillets even in the simplest case is that it's doing something to the edges, i.e. elements of the boundary representation, so that's a more natural structure for filleting.
>The distance field tells you the distance to the nearest surface at any point.
What you're describing isn't the same. You really are picking solids, not faces.
This wouldn't work even in the simplest case of a cube.
You can define a cube by a distance field:
f(x, y, z) = max(|x|, |y|, |z|) - 1
If the user wants to fillet just one the edges, then what? You only have one surface (the boundary of a cube), and one ID.
The field doesn't know anything about the edges.
OK, OK, we can ignore this edge case (badum-tss), but even if you only allow filleting "two surfaces", those two "surfaces" (really: boundaries of solids) aren't necessarily going to intersect along one edge (which is what the user wants to fillet).
The intersection may have multiple components. Or may not be manifold.
As a concrete example:
f(x, y, z) = z - cos(x)
g(x, y, z) = z - cos(y)
Look ma, no absolute values! Let me smooth-talk a little though:
f(x, y, z) = z - cos(x)cos(y)
g(x, y, z) = z - 0.25
.....and that's before we get to the reality where the user's understanding of "edge" isn't topological (as in, component of intersection between surfaces), but geometric (sharp corners).
B-reps can get away with making no distinction between them... Until you have messy geometry from elsewhere.
Say, an STL file from a scan. Or a mesh that came from an F-rep by marching cubes. Or whatever unholy mess OpenSCAD can cook with CGAL.
It doesn't matter if you use F-rep or convert to one: chisel out a cube as an intersection of half-spaces, then cut with half-spaces that narrowly touch the edges.
It'll look like a cube, and it'll be a cube functionally if you manufacture it.
Good luck with that one.
>If you have good ideas for this I'd love to hear them and resume working on Isoform
Well. The good news is that putting fillets on every edge is kind of easy with fields because you can do it with offsets.
If F(x, y, z) is a distance field that defines a solid, G(x, y, z) = F(x, y, z) + c offsets F inwards by c.
G is not a distance field anymore though, it's giving values that arent distances on the outside of convex corners.
Renormalize G to be a distance field, call it G'.
Now offset G' outwards by c: H = G' - c.
Ta-da! Concave corners aren't touched, convex corners are rounded.
Flip the + and -, and you're filleting concave corners (G = F - c is a field that defines an outwards offset that fails to be a distance field inside the body near concave corners; compute G' — the distance field for G; offset G inwards: H = G' + c).
Now, the "just normalize a field into a distance field" is doing a lot of heavy lifting here.
It works in the case of a cube if you define the cube to be the intersection of 6 half-spaces. There is a video demonstration of it working (partly) on a cube defined this way in the YouTube link in my comment above.
I define a surface to be the region of space where a particular SDF evaluates to 0. You define a solid to be the region of space where that SDF evaluates to <0, but they're broadly the same concept.
It is no problem to ensure that all primitives & all extruded sketches are defined so that each face gets a different surface id, and you would of course want to do this if you want to be able to fillet them.
You're right that there is a difference between an edge and between a pair of surfaces, but finding edges in SDFs is much harder than finding pairs of surfaces. If they intersect along more than one edge then you'll get the fillet along more than one edge. SDFs don't even have concrete "edges" in the general case. I'm not worried about this. Being able to fillet the intersection of 2 surfaces (solids) would satisfy me, but I haven't even got that far.
I'm not trying to find a solution that involves treating edges as "special". That's B-rep thinking. I don't mind if a "fillet" between 2 surfaces that do not touch but are closer together than the fillet radius creates a bridge between them, as long as it is smooth, continuous, and predictable.
It doesn't have to approximate the B-rep way, it just needs to be practically useful for turning sharp edges into rounded ones in a way that lets the user decide where.
>You must never have lived through governmental collapse.
I have (1990s Ukraine emerging from the ruins of the USSR).
>The children and the women will be selling ass for basic necessities, raped by both neighbors and invaders, and killed for no reason at all. Not Or. And.
Yeah, on that... Nope.
Dunno where you fantasized that from.
Prostitution for basic necessities existed, as it does in the US today (and everywhere else: poverty is the #1 reason for it).
Gangs did form. They didn't quite "seize everything they can". Protection racket was common, and preferred for the same reason that taxing a market economy is usually more profitable than a planned one.
"Invaders" weren't a thing.
Mass rapes weren't a thing.
People who "bulked up" and joined gangs, in their masses, weren't the winners.
Berezovsky, one of the most infamous Russian oligarchs, came from an academic background, with multiple publications in applied mathematics.
(Berezovsky number is a fun alternative to the Erdos number; mine is four [1])
Khodorkovsky was a chemical engineer by education who bootstrapped his business career by importing and selling computing equipment for a science education center he opened during perestroika. He used the funds to open a bank.
Gusinsky, Russia's media magnate, dropped out of engineering studies to major in theater. His diploma work was on Moliere's "Tartuffe".
Another theater major, Vladislav Surkov, went on to become Putin's chief propagandist and is primarily responsible for shaping the post-truth world we live in today.
Turning to Ukraine:
Kolomoyskiy, one of the most infamous Ukrainian oligarchs, was a metallurgical engineer.
Pinchuk, another oligarch, got a doctorate from the same university.
Poroshenko, an oligarch and a former president, got a degree in international relations and started a legal advisory firm for international trade before the USSR collapsed. His school buddy Saakashvili became the president of Georgia.
I can go on and on. A few thugs did make it big (e.g. Akhmetov); they were exception rather than the norm.
As the USSR collapsed, the people with enough smarts to be able to "seize everything" were either politicians or nerds.
>Anyone with any engineering knowledge can see why the 3D printing analogy doesn’t work because there isn’t a fixed set of models being banned.
Also because you can manufacture the exact thing with a lump that you just saw off later (or with a hole you fill with epoxy), or slightly larger / smaller / bent / etc., and it'll be functionally the same.
A functional piece of counterfeit currency needs to be identical to legal currency by the definition of currency; being indistinguishable from the real thing is the only function (otherwise, what you have is a piece of paper).
That doesn't apply to anything whose function isn't "looking exactly like this specific thing".
If the legislation aimed to by museum-grade visual replicas of certain shapes (e.g. an exact scaled down copy of Michelangelo's David), it'd be a technically challenging, but feasible problem.
But the problem they're trying to solve amounts to detecting the manufacturing of pieces with a certain function algorithmically, and forcing that spyware into every machine.
To boot, any form of algorithmic inference of the sort will require much more computing power than a 3D printer ever had.
That's ignoring the feasibility of solving the problem of "can this be a part of a gun", or even the much simpler one "is this part functionally the same as this other part" without giving a false positive on everything (as the saying goes, anything thing is a dildo if you are brave enough; guns aren't much different).
What I'm saying is that zero engineering knowledge is required to understand that requiring machines to refuse to make exact visual replicas of objects isn't the same as trying to restrict function.
I.e. that checking if two flat designs look the same is not hard, but checking if two designs will function somewhat similarly if manufactured is a God-tier problem.
_____
TL;DR: the only thing you can check by looking is looks.
And while that's all that matters for currency, it's irrelevant for guns.
Hope someone explains it to them legal folls. Ain't no engineering knowledge required for it.
>You can easily go through a couple hundred rounds in one visit to the range.
Range shooting is not what they're trying to legislate though.
Whoever killed that healthcare CEO didn't need a hundred rounds.
This legislation is insanely, horrendously bad and harmful, but "3D printed gun components are useless" isn't a solid argument against it. They're useful enough.
The real arguments, as others said, are:
1. You can achieve much more already without 3D printers
2. The legislation won't achieve its stated objective as any "blueprint detector" DRM will be trivial to circumvent on many levels (hardware, firmware, software)
3. Any semblance of that DRM being required will kill 3D printing as we know it (the text of the law is so broad that merely having a computer without the antigun spyware would be illegal if it means it can drive a 3D printer)
> Range shooting is not what they're trying to legislate though.
It's the thing gun manufacturers are selling to their customer base though. The theory was they were lobbying for this to prevent competition, but it's not good enough to actually compete with them.
> Whoever killed that healthcare CEO didn't need a hundred rounds.
Luigi Mangione didn't have a criminal record. Given his apparent political alignment, he presumably used 3D printed parts for trolling purposes since there was no actual need for him to do so. He could have bought any firearm from any of the places they're ordinarily sold.
>It's the thing gun manufacturers are selling to their customer base though. The theory was they were lobbying for this to prevent competition
Does anyone actually believe this? Is there any funds for this theory?
Seems to be too far fetched to be even worth sitting.
>Luigi Mangione didn't have a criminal record
That really isn't the point (he still doesn't have a criminal record, by the way).
The point was that the stated danger of 3D printed guns is their use by criminals for criminal purposes, not economic competition to established gun manufacturers.
> The point was that the stated danger of 3D printed guns is their use by criminals for criminal purposes, not economic competition to established gun manufacturers.
I guess the counterpoint is that it's not actually useful to criminals either, so there is no incentive for any non-fool to want laws like this and then all incentive arguments are weak because foolishness can be attributed to anyone.
One, you succeed in never being identified or apprehended. Consequently you, rather than the police, have the gun you used, and you can file off the serial number and throw it into the sea or whatever. They don't know who you are so they never come looking for the gun you no longer have and it's just one of millions that were sold to random people that year.
Two, you get caught before you do the murder. Some cop thinks you look too nervous or you get into a car accident on the way there etc. and they find the gun. Having one without a serial number at this point means you're in trouble when you otherwise wouldn't be. It's a disadvantage.
Three, they catch you in the act or figure out who you are because your face got caught on camera somewhere after you took off your mask etc. At this point it's extremely likely you're going to jail. This is even more likely if the weapon is still in your possession because then they can do forensics on it, and it not having a serial number at that point is once again even worse for you. This is apparently the one that actually happened.
Whereas the theory for it allowing you to get caught would have to be something like, they don't know who you are but they have a list of people who bought a gun (which, depending on the state, they might not even have) so they can look on it to find you. But that's like half the US population and doesn't really narrow it down at all.
There is no criminal benefit in doing it so that leaves the remaining options which are either trolling or stupidity.
If he's a suspect but not confirmed, they'd know if he purchased a real gun, and a ballistics test would confirm it matches the bullet. Conveniently "losing" it would raise suspicion too. Or if that's not why, there has to be some reason people make ghost guns in general.
It comes back the same thing, there is zero evidence that gun manufacturers are lobbying for this while Everytown is very publicly and proudly announcing that they are pushing this exact legislation.
It's ridiculous that this is even being discussed. The people proposing the bill must have zero understanding of how a 3D printer works.
It makes as much sense as requiring saw manufacturers to implement protections that restrict what can be cut out with a saw.
Or pen manufacturers being required to enforce copyright.
Any form of this bill will 100% fail to attain its stated objective, while having horrendous not-quite-unintended consequences.
And in the end, what's to stop someone from assembling an unlicensed 3D printer to make unlicensed prints? That's how the industry literally began.
(Not to mention: what do they think would happen to the hundreds of millions of existing "dumb" 3D printers? They won't disappear because there's a law).
The argument was they feel they are invincible in their [monopolist] position, and that argument is only made stronger by the cases you cited as none of the outcomes really moved the needle in that aspect.
reply