OpenSCAD: Software for creating solid 3D CAD objects - <AUTHOR> https://www.openscad.org <comment><USER2> It really saddens me that people are recommending fusion 360 here.

Sure, I get it. Fusion 360 is an awesome piece of software. But are people really _that_ eager to be completely dependent on autodesk?

Do people not realize that perhaps the reason for why fusion 360 is so cheap is because they are aiming (and on a fast track) to get complete monopoly? Does that not bother anyone? You wouldn't even be able to stick to an older version of the software.

Can you even version control your files? (will you in the future, without buying the premium package?) Yes I know the cloud has your back and everything. But you don't want the files in the same version control system that you use for everything else? What's next, save your python files in another cloud? It's absurd.

Can you export your files to be workable in any other software? (aside from very expensive autodesk products)

Are you not risking loosing _everything_ you ever produced? It's like python2 -> python3 but instead of compatibility issues your code just disappears or held hostage. How is that OK even for a hobbyist?

I'm sure I'm mistaken on some points (please correct me!), because I vomit every time I decide I want to try it and start the download process and start reading their pages (and I don't think I even got to the privacy policy).

The whole application is architectured to lock you in. That is the _SOLE_ purpose of it, why do we accept that?

It is dystopian, and the devil is being universally cheered upon. Have we really lost all hope?

<comment><USER3> I understand your sentiment and feel it every time I choose to start Fusion, the lock-in is just plastered all over the place. I have used OpenSCAD for a while and coming from a DevOps world I greatly value the Everything-as-code mantra that OpenSCAD enables. But as a hobbyist 3D printer looking for the tool to just get my idea out in an evenings work Fusion is just the best/cheapest out there for me at the moment.

I have now adapted a mentality to not create anything I'm not willing to loose. And if Autodesk ever decides to change their license, which they inevitably will, I'm willing to just take that loss and find something else at that time. Maybe by that time some open source developer has implemented Fusions idea's in sketching/modelling (and hopefully improved on some parts).

For me the choice is just accepting Fusion for what it is now or get sidetracked in all kinds of stuff and never finishing a hobby 3D model anymore. OpenSCAD is nice, but for me it is to easy to lost in perfecting the coding when trying to get the model the way I want. And other 3D modeling tools (eg: Blender) are just not fit for engineering work like Fusion is.

<comment><USER2> I could almost have written that myself.

What have stopped me from trying Fusion 360 for stuff I'm willing to lose is that, while the vast majority I do for fun I could stand to loose, the idea is that some things that I create I would rather not lose.

And then what? I go learn something entirely different just for that? If so I've invested tons of time in CAD software and own a 3d-printer but I'm unable to create something "real"? That's why I try to learn the alternative now, and get the time I would otherwise have invested in fusion 360 for free.

I'm betting on a sibling to this comment - that after the initial hurdle, when you get proficient enough the clunkyness of the alternatives are easily overcome. I'm convinced that is the case, but the real question is whether it is worth the time to get to that level. And that is a very hard question, especially for something as a hobby that is dependent on it being fun and/or rewarding.

I truly understand the fear of getting sidetracked. I battle with that every time I open FreeCAD or attempt something in OpenSCAD.

I get why any individual would chose Fusion 360. But I'm completely heartbroken that the community as a whole gives up so much without apparent thought, and see people advertise it "because it is free" on a thread about an open source alternative is sad.

And I'm not talking about freedom as in open source (but I really do value that too). If I could buy fusion 360 for $1000 (only the modelling part of it - without the cloud). I would have much fewer issues with it (even though I qualify for the free version now) - that cost is easy to reason about. And there would have been a recourse for when autodesk decide utilize its monopoly. But that's of course also the reason that they won't offer that.

<comment><USER4> >If I could buy fusion 360 for $1000

Why would it be that cheap? Fusion 360 is competing with SolidWorks. A standalone license for SolidWorks probably starts at $4000.

For any comparable commercial 3D parametric mechanical CAD system just the B-rep modeling kernel alone represents several hundred person years of commercial development going back 30 to 40 years, and academic research going back 50 years.

The Fusion 360 kernel is ShapeManager [0], forked from ACIS 7.0 in November 2001.

Work on ACIS [1] started in 1985 after the 3 founders (Ian Braid, Charles Lang, Alan Grayer) left ShapeData having worked on Romulus.

Romulus [2] was released in 1978 and was based on BUILD 2.

BUILD 2 and before that BUILD were created by Ian Braid during his PhD thesis started in 1969 and supervised by Charles Lang. [3]

Now, what about SolidWorks?

The SolidWorks kernel is Parasolid [4], dating from 1987, which was a C dialect rewrite of Romulus, which was written in Fortran. ACIS, by the way, was written in C++, so was one of the first commercial systems written in C++.

How do I know the above? I worked on Parasolid 1989 to 1995. We had 20+ devs then - department head count was 40+. The still have lots of devs working 30 years later.

There's only one comparable open-source B-rep modeling kernel - Open CASCADE, that powers FreeCAD. But quality wise, IMO comparing it with Parasolid, ACIS or ShapeManager is a bit like comparing Lucene with Google or Bing.

CGAL that powers OpenSCAD is high quality - but it's a very different beast, and not something you could use to power Fusion etc.

Why is B-rep modeling so much work? Here are some reasons:

* B-rep models are inherently complicated graph based data-structures with many different node types (geometry and topology). Just keeping the model consistent is a lot of work.

* Lots of surface and curve types means lots of combinations for surface X surface, surface X curve, curve X curve intersection/distance/... algorithms.

* Tolerant modeling.

* Topology case analysis from hell for blending.

* Hybrid b-rep modeling with other approaches, meshes, volumetric etc. and make it work properly.

* Feature-based history modeling layered on top of b-rep modeling means that your b-rep operations must replay EXACTLY the same, even when you upgrade the kernel.

[0] [https://en.wikipedia.org/wiki/ShapeManager](https://en.wikipedia.org/wiki/ShapeManager)

[1] [https://en.wikipedia.org/wiki/ACIS](https://en.wikipedia.org/wiki/ACIS)

[2] [https://en.wikipedia.org/wiki/Romulus_(b-rep_solid_modeler)](https://en.wikipedia.org/wiki/Romulus_\(b-rep_solid_modeler\))

[3] [http://solidmodeling.org/awards/bezier-award/i-braid-a- graye...](http://solidmodeling.org/awards/bezier-award/i-braid-a-grayer-and-c- lang/)

[4] [https://en.wikipedia.org/wiki/Parasolid](https://en.wikipedia.org/wiki/Parasolid)

<comment><USER5> >Why would it be that cheap? Fusion 360 is competing with SolidWorks.

I wouldn't really say that's true. Inventor is really Autodesk's competitor to Solidworks. Fusion seems like it's competing more with hobbyist tools like Sketch-Up, and maybe open source tools like FreeCAD & OpenSCAD.

<comment><USER4> FreeCAD is nowhere close to the quality level of Fusion.

Sketch-Up and OpenSCAD are just very different from Fusion.

The closest cloud competitor is OnShape: starts at $1500 _per year_ \- only free option is public storage.

[https://www.onshape.com/cad-pricing](https://www.onshape.com/cad-pricing)

</comment></comment></comment></comment></comment></comment><comment><USER6> I gotta put in a plug for SolveSpace. [http://solvespace.com/](http://solvespace.com/) its got its quirks but it hits a sweet spot between using a GUI and specifying dimentions numerically. I think it might be abadoned, as it seems to need a serious update of some of its concepts, but as long as you stay under a certain complexity level its fun and open source.

<comment><USER7> SolveSpace is not abandoned at all, and generally the best parametric 3D modeler. Simple, easy, elegant with most features.

<comment><USER8> I'll agree that it's a great piece of software, but "most features" isn't really true. You run into its limits very quickly, but then you start finding ways to make what you want with the features it has!

</comment></comment></comment><comment><USER9> A (non-exhaustive) list of hobbyist-accessible engineering CAD programs I can recommend:

\- Fusion 360 (Windows/Mac) (free for hobbyists) can do complex many-component robots or simple geometric shapes and has facilities for rendering and simulation. I'll concur with all the other recommendations I see here.

\- OpenSCAD (Windows/Mac/Linux) (GPL) is text-based, which is nifty but really limiting. Good for generating triangulated files of complex-but-formulaic objects (e.g., gears/screws), but is ~10x slower to use than Fusion for most anything else. Would definitely not attempt to use to design an assembly of multiple parts.

\- SolidWorks (Windows) ($$) is industry-standard. IMO, slightly better (smoother/faster/more robust) for modelling medium-to-large things than Fusion 360.

\- OnShape (clound-based) ($$ but IIRC has hard-to-find public/free tier) is notable for working in a web browser (good for Linux users). Seems to have a bunch of plugins, but actual CAD capability is run-of-the-mill. [EDIT: also has a functional CAD-on-phone app. Like, wow.]

\- FreeCAD (Windows/Mac/Linux) (GPL) is the open source Fusion/SolidWorks equivalent option. Needs a lot of work (e.g., good part assembly capabilities) and I find it rather clunky. I wouldn't learn CAD here, but I do really want a community-developed Linux desktop CAD program.

<comment><USER10> I 100% agree with your assessment, but I would definitely add SolveSpace. It's an open source parametric modeller but unlike FreeCAD it is actually usable. Not as fully featured as Solidworks etc. but it has all the basic stuff working quite nicely.

Somewhat unconventional interface but it works ok. If you must use open source it is definitely the one to use. As I recall it only has basic assembly support though.

<comment><USER11> as someone who is just starting to look into free/open sourc CAD tools, what about FreeCAD makes it unusable? I've just done a few of their tutorial/walk throughs recently and can't really tell what was unusable vs. me being new to the entire CAD modelling process.

<comment><USER10> I can't remember to be honest. It's been a while. At a guess I think it would just be really unusable - everything being needlessly clunky or impossible to discover. Case in point - you followed tutorials. With something like Solidworks I think most people could work out how to do a lot just by experimentation in the program.

I would definitely recommend using either SolveSpace or Fusion 360 (free for hobbyists) if you want to learn CAD (or pirate Solidworks if you can be bothered). After that you could try to use something like freecad and won't get confused by it.

Same for electronics. Don't try and learn from Kicad or Eagle. They have ridiculously awful interfaces. I would recommend Designspark PCB or pirating Altium.

</comment></comment></comment></comment><comment><USER12> Mechanical Engineer here and I design stuff in CAD for a living. OpenSCAD is great for the basic stuff but doesn't really scale well. It's fun to play with and to teach people programming and CAD at the same time. If FOSS is really a concern, FreeCAD is probably the better route.

However, like others said, Fusion 360 for hobbyist is the way to go. For professionals, just go with Solidworks. IMHO, it works better than anything (though I only also know and have been trained how to use Inventor, Creo, and NX so I do not know how other software like Catia will compare). Solidworks is way more advanced than Fusion 360 when you need to design something a bit more complex. Don't forget, CAD modeling is only half the work. Making good drawings is the other half and Fusion 360 drawing capabilities is pretty crappy as of right now.

As for the FOSS debate, it's quite interesting because no one in the industry cares about being locked in. $4000 for a license is nothing compared to "$140/hr" rate that engineers cost a company. As long as the software works and the engineer produces tangible results, closed source software will continue to dominate.

<comment><USER13> As a non-Mech E, but someone who needed parametric CAD for side-biz[1] projects... the delta between FOSS offerings and paid offerings in this space is immense. I evaluated Fusion 360 a few months back, and even that was a non- starter for my use: I was floored that it doesn't have a feature often called "configurations"[2], vital to my work. Solidworks would be great, but the per- seat starting price was far too high for me right now. I went with Alibre Design on the recommendation of an engineer acquaintance, and that's been my personal parametric CAD sweet spot. I _adore_ OnShape's revisions to classic CAD modeling, but it's still more than I want to pay given[1].

[1] not yet money-making, so still akin to "hobbyist" in needing to keep a constrained budget. I absolutely agree with the parent that the per-seat costs seem high, until you factor the costs of your skilled staff in a real work environment.

[2] Imagine you want to model a cap screw, but have just _one_ master model for all of the diameter/length/{fully-threaded, partially threaded} variations. Updates to the model are then sanely propagated to every variant. You don't have to go very far down this path before manually keeping separate models in sync will drive you nuts. That's the problem that configurations in CAD s/w were created to solve.

<comment><USER14> In regards to number 2. You can have variables and parameters in Fusion360 -- I use it all the time for adding a tolerance variable and stuff like wall thickness, length, width etc...

Are configurations significantly different?

<comment><USER13> Yes, let me clarify. Variables and parameters in a model, which are then _driven by a data set_ are what configurations give you. E.g. some CAD suites allow a CSV/spreadsheet to drive the configurable parameters. OnShape allows for a table-per-variable, avoiding the need to manage combinatorial explosion in the rows of your config table. Alibre Design simply adds configurations as named entities within a model file. While not driven by external data, it allows complete integration into the editor environment which has upsides for my work. (I don't work with big configuration tables, so this works great for me.)

Some suites also allow configurations to enable/disable parametric features. At the simplest, this lets you add boolean changes to the configuration table, like "has mounting holes?" or "is/isn't a full-thread screw" and so forth.

</comment></comment></comment></comment><comment><USER15> A great way of getting started with OpenSCAD is (blockSCAD)[1], which is a scratch-type graphical editor (that can switch back and forth between text and block code). While I don't usually like block code, it actually works really well in the setting of OpenSCAD, and because of the one-to-one mapping between blocks and written code the editor can switch back and forth between the two.

A related project is (openJSCAD)[2], which uses the same geometry logic as openSCAD, but embed it into javascript for flow-control and related logic. I really like this approach, since it avoids having to pick up yet another DSL. The openJSCAD online editor also features an local-file integration that blew my mind when I first saw it.

[1]: [https://www.blockscad3d.com/editor/](https://www.blockscad3d.com/editor/) [2]: [https://openjscad.org/](https://openjscad.org/)

<comment><USER16> There's also [https://github.com/tasn/scadjs](https://github.com/tasn/scadjs) I built it because openJSCAD was (is?) pretty incomplete in comparison to OpenSCAD. The nice thing about scadjs is that it doesn't reimplement the CAD engine, but just uses openscad itself.

I was using it for my prints, so it works and works well, though it may be incomplete in some areas.

</comment></comment><comment><USER17> For simple geometric models for 3D printers, it's hard to beat OpenSCAD for precision and productivity.

It's not particularly good for more organic shapes, but simple mechanical parts are a dream to make.

<comment><USER18> Yep, and as a intro to parametric modelling, very good. It has its quirks, but it's solid. It's also the defacto open source format, folk use when sharing models.

</comment></comment><comment><USER19> I've used opendSCAD and also freecad for years (linux). Now I just ordered a new PC for running windows and Fusion360. Am I happy with that solution? ... not really. I would be happy to support an open source CAD project with 3-5€ a month if I got a decent and stable SW in return. I do likewise with octoprint. Why I'm in the process of changing? My time is limited and I feel that certain things should be faster toolwise. Additionally it happened more then once, that I had to scrap work of several hours because I hit a point with a reproducible crash. (yes - I did file a bug report ... it was answered more then a year later asking me for the buggy design ... which I could not provide anymore)

I understand that a stable SW and continuous improvement (especially in a complex SW package like CAD) needs a small team of full time developers. If somebody started a related croud funding campaign with a follow up patreon financing program ... I would be in!

<comment><USER11> can you comment more on your experience with FreeCAD? I've just started looking into learning that myself since I run Linux for a desktop, with no current plans to buy a windows machine just for Fusion360.

I've also been thinking recently that I'd be happy to contribute monthly to further the development of these projects, as it is understandable that such a complex development tool should require resources to be built well.

<comment><USER19> Well - I started with freecad using some good tutorials which can be found on youtube. Most times it works but in certain everyday functions I feel there could be more smoothness (like for example if you want in a sketch a complete parallel path in x distance) My understanding is that Fusion 360 has such functions. Another thing which could be done better is fillet functions (to get round corners) I think this a good example for something you use often (rectangular corners just don't look professional) but often don't work out as expected. Lately I use openscad for my stuff but getting fillets with this is a major pain...

To sum up: FreeCAD is not bad - there are some good tutorials and so on and it certainly can teach you how to construct something 3D... but save often and save early (and best some different versions as well) On the other side I expect a more professional handling from Fusion360 ... and of course there are additional features like finite element simulation....

</comment></comment></comment><comment><USER20> I generally like OpenSCAD but its language is not very feature rich. E.g. it still does not support generalized extrusion, offsetting, subdivision (e.g. Catmull-Clark subdivision), bezier curves etc which I find it hard to use for anything more complex than a screw. They use CGAL as a dependency, so they should be able to implement these. But it's a promising CAD for sure.

<comment><USER21> These are doable.. you have to write them yourself, it's not terribly hard. Being able to programmatically define a tolerance Delta was extremely useful (for me); I was able to design an interlocking assembly and dynamically change the tolerance to make sure they fit my material in two printings (print once, measure dimensions, quickly adjust constant, print a second) with a trusty pair of calipers.

<comment><USER17> Do you have any of that tolerance code open-sourced? (Even if not the entire model, could you share any of the relevant portion[s]?)

<comment><USER21> [https://github.com/ityonemo/imsocultured/blob/master/device....](https://github.com/ityonemo/imsocultured/blob/master/device.scad)

is an example.

</comment></comment></comment></comment><comment><USER22> Its a lot less scary than it looks and I found it to be much much easier to use than freecad. My workflow on freecad was basically just typing numbers in to the properties panel for shapes so why not just do the same thing but as a text file so I can see more at once.

<comment><USER23> As an occasional FreeCAD user and contributor, this confuses me. Are you describing writing Python scripts to create your geometry from scratch, or maybe building models out of primitive shapes and boolean operations?

My usual FreeCAD workflow involves drawing constraints-based 2D shapes in Sketcher, then extruding/revolving them. There are some numbers typed in, but those are mainly just key dimensions.

One of FreeCAD's bigger faults IMHO is that the right/best way to do things isn't easily discoverable (as seems to be common in CAD), and the documentation (like many OSS projects) is a bit hit-and-miss...

<comment><USER22> When I make stuff I always have exact dimensions and positions I need to use so almost none of what I am doing can be freely drawn with the mouse. With openscad I can type in my exact values and be sure that nothing was accidentally moved by mouse.

<comment><USER23> I'd say exact dimensions are the norm for FreeCAD too - the mouse isn't used for freely drawing shapes in any workbench that I'm familiar with. With the Sketcher workbench in particular, the constraints control the geometry; the mouse is essentially used for selection and input of relationships between shapes.

For example (I've only skimmed this video, there are likely better ones), check out [https://www.youtube.com/watch?v=rgstQi9jpGc](https://www.youtube.com/watch?v=rgstQi9jpGc)

<comment><USER24> They should link these videos on their website somewhere. The first time I started FreeCAD I was completely lost(well, I'm not really a CAD expert), but some videos on YouTube explain the basics really well.

Now I find the sketching pretty intuitive, albeit a bit clunky and slow. The number one feature I'm missing is the program telling me WHAT degrees of freedom are still unconstrained in a sketch.

</comment></comment></comment></comment></comment><comment><USER25> A couple years back, I wrote a beginner post on learning OpenSCAD. It seemed to have helped people get up and running. [https://cubehero.com/2013/11/19/know-only-10-things-to-be- da...](https://cubehero.com/2013/11/19/know-only-10-things-to-be-dangerous-in- openscad/)

Other than that, you can check out [https://www.reddit.com/r/openscad](https://www.reddit.com/r/openscad), for what other people are doing with it.

<comment><USER26> Thank you for that post! I discovered it a bit over a year ago when I was trying to make some simple shapes on a 3D printer. Your examples made it easy and understandable, and I've pointed several other folks at your post since.

<comment><USER25> No problem! Glad it helped.

</comment></comment></comment><comment><USER27> I can't recommend Fusion 360 enough (it's free for non-industrial use and cross-platform) for non-professionals looking to model 3D CAD for prototypes, POCs, hobbyist consumption, etc.

<comment><USER28> Could you kindly show me the page on their web site saying that it is free for non-industrial use, please? I cannot find it by myself, I can only see free trials - but it is not what you meant, right?

<comment><USER29> Here's a bit:

[https://knowledge.autodesk.com/support/fusion-360/learn- expl...](https://knowledge.autodesk.com/support/fusion-360/learn- explore/caas/sfdcarticles/sfdcarticles/How-to-activate-start-up-or- educational-licensing-for-Fusion-360.html)

It's nice that even if you are a commercial business, if you have <100k in revenue per year, the license is free as well.

</comment></comment></comment><comment><USER30> I recently bought a 3D printer and have enjoyed programing objects in cljoure with scad-clj.

[https://github.com/farrellm/scad-clj](https://github.com/farrellm/scad-clj)

This is biggest project I know of that uses it:

[https://github.com/adereth/dactyl- keyboard](https://github.com/adereth/dactyl-keyboard)

[https://www.youtube.com/watch?v=uk3A41U0iO4](https://www.youtube.com/watch?v=uk3A41U0iO4)

<comment><USER2> That talk is excellent and it got me interested in both scad-clj and the keyboard.

</comment></comment><comment><USER31> Another option for programmatic parametric CAD is cadquery: [https://dcowden.github.io/cadquery/index.html](https://dcowden.github.io/cadquery/index.html)

A cadquery FreeCAD plug-in exists, so some tasks can be done via the GUI and others programmatically.

<comment><USER32> CadQuery is awesome. OpenScad's language is quite limited: being able to use any Python you want makes CadQuery so much more powerful. Plus CadQuery can generate STEP files so you're not limited to hobby 3D printers: you can send your project out to a CNC shop. I designed and manufactured a keyboard using CadQuery and would highly recommend it.

</comment></comment><comment><USER33> While I really enjoyed working with OpenScad, I find ImplicitCad[0] to be far more _functional_ (excuse the pun), the language is just more easy to reason about.

[0] [http://www.implicitcad.org/](http://www.implicitcad.org/)

<comment><USER34> At least it can make circles that are round instead of polygons, so that's a major upgrade already.

<comment><USER35> I think you can set the resolution with something like $fn=100; if I remember correctly.

<comment><USER34> Polygon with large but finite number of sides is still a polygon.

<comment><USER17> When the desired output format is .stl, that's not a meaningful limitation.

<comment><USER34> But when the desired format is STEP, then it suddenly is a meaningful distinction.

</comment></comment></comment></comment></comment></comment><comment><USER36> I can't believe that nobody has mentioned the Prusa FDM 3D printers are, and have always been designed in SCAD[0].

This alone has been instrumental in allowing community improvements, it's the last "true" reprap, they run a farm of 300+ machines and iterate parts somewhat frequently.

Pretty amazing that there is one molded part on the entire machine, the spool holder.[2]

There was also some "archeology"[1] on the traditional CAD dead-ends from a specific extruder design that I found facintating.

[0]: [https://www.prusa3d.com/prusa-i3-printable- parts/](https://www.prusa3d.com/prusa-i3-printable-parts/)

[1]: [https://reprap.org/wiki/Genealogy_/_Archeology_of_the_Greg's...](https://reprap.org/wiki/Genealogy_/_Archeology_of_the_Greg's_Wade's_Geared_Extruder)

[2]: [https://twitter.com/la3dpr/status/1072393398722670594?s=21](https://twitter.com/la3dpr/status/1072393398722670594?s=21)

</comment><comment><USER37> For those curious about what you can do, I designed and 3d printed this small robot using OpenSCAD:

[https://sendcat.com/dl/BLB0593VKWdC8p61VVmDxA9Yy0eR9EtLl33qL...](https://sendcat.com/dl/BLB0593VKWdC8p61VVmDxA9Yy0eR9EtLl33qLVLt2FEwIzkbCbjgJzd)

</comment><comment><USER38> The apt-packaged version of OpenSCAD was broken for the current LTS version of ubuntu and hasn't been fixed yet. You'll need to download it from an alternative source if you want it on 18.04. Works well on 16.04 though!

<comment><USER39> The OpenSCAD releases seem to be in chaos. I've been using an AppImage release in Ubuntu, build 9.4, since February. Later releases seem to just crash. I get the feeling I'm building on an unstable foundation. :-(

<comment><USER38> The particular problem I referred to was caused by ubuntu's packaging process though: a dependency package failed to build for some obscure architecture so they decided that the sensible course of action was to remove the package for ALL architectures.

Perhaps I'll just use AppImages like you so that I can finally upgrade off 16.04. Have you found any downsides to using the AppImaged version over the apt one? (aside from the stability issues in newer releases)

<comment><USER39> The AppImage has been great. No downsides.

</comment></comment></comment></comment><comment><USER40> Has the post title been altered by mods? I recall last night it mentioned something about Scad being parametric or programmable - a fact that made this post potentially more relevant to HN readers.

It's a terribly generic title now.

</comment><comment><USER41> Better integration with Python would make OpenSCAD 1000% more usable.

<comment><USER42> There is solid python: [https://github.com/SolidCode/SolidPython](https://github.com/SolidCode/SolidPython)

I have used it extensively and it's better than raw openscad.

<comment><USER20> Huh, didn't know about viewcad (Jupyter OpenSCAD viewer). Looks amazing.

</comment></comment></comment><comment><USER43> OpenSCAD's performance only scales with the clock speed of a single CPU core. On any sufficiently complex composition, the underlying geometry engine will eventually either slow to a crawl due to combinatorial node visits or fail to render due to opaque assertion failures. This is not the basket to put your eggs in for professional modeling. It will let you down and there is no clear path to making it better any time soon.

</comment><comment><USER44> There's also Graphscad, which is a node-based interface for openscad. I only just learned about it myself, so haven't tried it yet, but it looks extremely cool to me!

[http://graphscad.blogspot.com/](http://graphscad.blogspot.com/)

</comment><comment><USER45> My only problem with Autodesk products is they refuse to support Linux. I hated having to have Windows just for one shitty piece of software.

</comment><comment><USER46> I feel like OpenSCAD is extremely good for generative art (where its programming language is useful), but sorely lacking for designing functional hardware. It doesn't even have a measure tool! It's vastly too slow at previewing and rendering, and building everything out of various intersections of basic solids is cool at first and rapidly becomes infuriating. While not FOSS - but still suitable for tinkerers - Fusion 360 and SolidWorks both have maker-friendly licensing and are dramatically superior tools.

<comment><USER47> I'll agree with the slowness issues, but I've found OpenSCAD extremely useful for functional hardware, especially when implementing something against a spec or physical measurements that need to be iterated open. As examples, I've designed a PC chassis and working housekey copies in OpenSCAD, both of which benefit massively from being fully parametric.

On the measure tool, it usually isn't necessary because your critical dimensions should be inputs into your SCAD rather than outputs from it. Even so, there is a pretty useful set of modules for generating dimensioned drawings: [http://www.cannymachines.com/entries/9/openscad_dimensioned_...](http://www.cannymachines.com/entries/9/openscad_dimensioned_drawings)

<comment><USER36> Bookmarked.

Very cool, these are great modules and I will be happy to have them in my SCAD toolkit. Thank you!

</comment></comment></comment><comment><USER48> In OpenSCAD you build your part by constructing its convex hull. This is done by using primitives with known convex hulls such as rectangles and spheres and combining them using operations such as addition, subtraction, union, and Minkowski sum (which is an interesting peice of mathematics.)

Because you interact with shapes using code, it feels much more precise than a GUI. I think this makes it easier to create parts that aren't "glitchy." You want your part to have the minimal amount of detail and using code makes this easier because you can keep track of the steps to draw your shapes to see if you made any unnecessary changes.

OpenSCAD made me think about CAD in a different way.</comment>


Secure delete with rm on OS X - <AUTHOR> http://paksoy.net/post/1385176457/easy-secure-delete-with-rm-on-os-x

<comment><USER2> There is no guarantee this goes on the same sectors on the disk. I think that would only be guaranteed by a "secure delete call" to the drive's firmware.

The only way I know to securely erase the empty space on the drive is a call like "cat /dev/urandom > file; rm file". This will error once the drive is full, then be deleted.

<comment><AUTHOR> Interesting. But that would only be true for journaling file systems right? Or are there consumer hard disk drives that transparently journal writes _a la_ ssd's?

<comment><USER3> Newer generations of SSD's have a command called "TRIM". It is meant as a way to speed up SSD drives by alerting the drive to blocks that are no longer in use by the file system and can be pre erased so to speak which makes future writes to that location faster. Windows 7 and newer versions of the Linux kernel support it.

<comment><USER4> That doesn't necessarily mean it will be erased, it just gets put back in the list of unallocated blocks.

<comment><USER5> No. Flash memory is sort-of write-once in the sense that a page starts with all bits in one state. From there, you can flip individual bits to the other state, but to flip them back, you have to flip back all of them. So, to update a single bit, you may have to read a block, erase it, update the in-memory block, then write the in-memory block.

The trim command will do the 'erase block' part of this procedure before the block is actually needed for data. That speeds up a future write to that block.

</comment></comment></comment></comment></comment><comment><USER6> Know what's easier?

Right click the trash bin, and hold Command. You'll see "Secure Empty Trash". You can also do the rm -P _from_ the trash bin, which I wish they allowed you to do under normal circumstances. (dterm makes this easy.)

<comment><USER7> Thanks. I knew you could hold "alt" when left-clicking on the volume control to select inputs, but I didn't know about that one. Very useful, much better than going in the Finder's preferences...

<comment><USER8> For what it's worth, holding down Option/Alt will empty the Trash without confirmation.

Also, from the menu you can select:

        Finder > Secure Empty Trash

You can even give it a keyboard shortcut, if you like. Or, as you mentioned, there's an option to always securely empty the Trash in the Finder Preferences.

</comment></comment></comment><comment><USER9> This isn't an OS X specific feature, it's a feature from the FreeBSD userland that Apple borrowed into OS X.

</comment><comment><USER10> Secure delete is not reliable with modern filesystems. Just use full-disk encryption -- it's free.

<comment><USER11> I've generally seen full disk encryption on a OS volume as a moot point. Why is there a need to have full disk encryption on a bootable volume, when the only thing you should be protecting from prying eyes is your content? Full disk encryption makes sense in a data volume, not in a bootable volume where just having a ~ directory and it's children encrypted covers mostly everyone's need for security.

<comment><USER10> So you know for a fact that every application you ever use doesn't write data outside of ~?

You may feel comfortable about that, but I don't. /tmp, for example, can contain plenty of sensitive data.

<comment><USER11> It doesn't if I don't give it permission to, but if you're concerned about it encrypt /tmp also or symlink it to ~/tmp (provided you're the only user).

Nevertheless, I do understand that you have different requirements, but in the case someone really values the option of having his entire boot volume encrypted, the one time only price tag of PGP is a moot point and shouldn't be a deterrent. In fact, I'm now tempted to buy PGP's whole disk encryption thank you very much. In any case, I think it's generally overkill, but if you really needed, who am I to stand in your way! :)

<http://www.pgp.com/products/wholediskencryption/index.html>

<comment><USER10> I use Linux, so full-disk encryption was just a checkbox (erm, line that you select?) in the installer.

Like I said, it's free, so why not?

<comment><USER11> Oh silly me, I kind of assumed you where using OSX because someone made the comment that there's no option for full disk encryption. My bad. If I had an option to encrypt my whole disk that easily in OSX I'd take in a heart beat, not necessarily because I think it's better but because it's a solution and it's simple... because I can so to speak.

</comment></comment></comment></comment></comment></comment><comment><USER12> Or use srm.</comment>


Ask HN: How to deal with the C10K problem with a simple script? - <AUTHOR>

I was asked by a client to setup a survey site for Japanese mobile phones that would be displayed at a major event that would be taking place at the Tokyo Dome.  The problem is that I'll be dealing with 10k users connecting to the site at the same time, and that the site will only be up for a day.
The client says that he wants no connections dropped, and to prepare the infrastructure so that it can handle it. (My initial idea was to try to find a web service to handle it, but even the best could only deal with something like 150-200 simultaneous connections.)
My idea is to setup an Amazon EC2 instance with nginx or Lighttpd and to make a simple Ruby or PHP script to handle the form that is submitted, and store the submissions to the Amazon SimpleDB.
Unfortunately, I've never dealt with scaling and load balancing for something like this, and I can't find any information about the kind of load I am looking at.  Can anyone offer any advice on how to handle scaling with EC2 or any other cloud service? <comment><USER2> You're overthinking this.

The client doesn't mean that 10k people are going to hit the site at the same microsecond. The client means that there will be 10,000 eventgoers accessing the site within a particular period. Many of the clients in this industry, being _cough_ fundamentally non-technical people, believe that the period of reference is "one day".

As you've probably noticed, a $20 a month VPS plus Apache can _easily_ chew through 10k visitors in a day (I wouldn't use Apache personally, but if I were competent at configuring it, yeah, no problem whatsoever). Adjust upwards if your client anticipates a particular instantaneous deluge (think "Steve Jobs stands up at the keynote and says 'My robot minions, all of you need to hit this URL right now!').

P.S. Your client is _wildly_ overestimating the audience that will actually come to the site. Don't tell him I said that.

</comment><comment><USER3> This isn't the C10k problem. The C10k problem is "how do you handle 10k mostly idle connections" -- the situation where per-concurrent-connection costs matter (e.g., you really don't want to have 10k processes, each handling a single connection).

Your problem is simply "how do I handle huge amounts of traffic". The first half of the answer, as you guessed, is to use EC2; the second half is to throw traffic at it and make sure that you get the response (whether it's in being able to handle the necessary number of requests or scaling automatically) that you want.

The middle half is to make your code as efficient as possible; I would not recommend storing directly to SimpleDB. Just log form submissions locally and then process them as a batch.

<comment><USER4> I have to agree with this. If you have to process 10k submissions in a very short space of time, why have overhead of storing it in the db right then and there when you can asynchronously process it later.

If you want something interesting to work on, you could have nginx for the front end (faster than lighttpd), accept a form submission which gets written to disk and maybe pop an id on a key-value store like redis, and another poller app in ruby which pops id's off the queue and processes the files on disk.</comment></comment>


IPhone or Android for new game development? - <AUTHOR>

So here's my dilemma: I have a great idea for a new mobile game that could go on either platform. I don't think it'll be easy to share code between the platforms despite both using OpenGL ES. I personally have access to a Droid and Droid Eris, and would have to purchase an iPod Touch to playtest. It seems like the audience for iPhone would be larger, but I'm more partial to Android. Any ideas on which I should choose? <comment><USER2> I develop applications for both platforms (no games yet, though) and, despite my disdain for Apple, I'd argue that iPhone is a better platform for developing 'conventional' games.

The iPhone's ability to write in plain C will help if you're planning on using any off-the-shelf libraries. Yes, you can do this with Android's NDK using JNI, but it's not nearly as seamless.

Also, if you're going to be using OpenGL, Android's OpenGL ES 1.1 implementation is 'not complete,' while iPhone claims a complete ES 1.1 implementation, with newer models (3GS, latest iPod) supporting ES 2.0.

Lastly, if you're doing a performance-intensive game, you may want to keep in mind that your Android code will run on top of Dalvik, while iPhone code will be compiled to binary. Hopefully, this won't be an issue, but I imagine it's not fun to realize that you'll have to port most of your physics and game logic to C using the NDK.

Again, I have no experience developing a legitimate game on either platform, so take my words with a grain of salt. And as an Android user myself, I'd love to see more games on the platform. Best of luck, and let us know what you choose!

</comment><comment><USER3> I'm an Android user and generally find HTC sense an improvement over my old iPhone in a number of ways.

However currently applications downloaded from the market must install to in- phone memory, not the SD card. This severely limits their size. Some apps alternatively just have a downloaded in the market that fetches the rest of the app onto the SD card when launched, but the user experience for that isn't great.

I'd wait until Android gets native market -> SD card capability. In the meantime, go for iPhone.

</comment><comment><USER4> There are a lot of good tools for game creation on the iPhone (Unity, for example) that just don't exist for Android yet. They are coming, (JMonkeyEngine is coming out with one sometime soon I hear). Also the audience is bigger, though Android is catching up. All that being said, it is probably easier to make a name for yourself in Android game development...basically it is a tossup. Go with the language you are more effective in, and if you get some cash coming in from that, port it over to the other platform.

</comment><comment><USER5> Well, they both have their strengths and weaknesses obviously. One thing I'd say in Android's favor is that if you make a really kick-ass game, you'll be a big fish in a small(er) pond. I think with the iPhone there's a higher risk/reward, but with Android you have a chance to make a really big splash.

</comment><comment><USER6> I'd go for the Andriod, it is gaining steam. I think the big fish in a smaller pond idea makes a lot of sense. If it does well on one platform I would look at finding someone with experience on the other to help port it.

</comment><comment><USER7> You're audience probably will be larger on the iPhone OS. Plus, you might enjoy coding in Objective-C more than Java (for the non-OpenGL ES stuff).

I'm biased toward the iPhone, though.</comment>


Show HN: WebRTC Insertable Streams and server processing - Sean-Der https://github.com/pion/webrtc/tree/master/examples/insertable-streams <comment> Sean-Der Hey HN!

This is a little demo of WebRTC insertable streams. This API has the possibility of opening up some exciting with WebRTC.

The gist of it is that you have access to the video frames in the browser now! You can see here [0] flipping bits in the browser (a simple XOR Cipher) that was applied here [1] in the Go code.

The use case I am most excited for is attaching metadata to frames. Especially for teleoperation a big ask has been attaching metadata to a specific frame, this makes it possible!

I also have a video demo on Twitter here[2] but not that exciting

[0] [https://github.com/pion/webrtc/blob/master/examples/insertab...](https://github.com/pion/webrtc/blob/master/examples/insertable- streams/jsfiddle/demo.js#L28-L38)

[1] [https://github.com/pion/webrtc/blob/master/examples/insertab...](https://github.com/pion/webrtc/blob/master/examples/insertable- streams/main.go#L97-L100)

[2] [https://twitter.com/_pion/status/1271956810015010816](https://twitter.com/_pion/status/1271956810015010816)

<comment><AUTHOR> Hi, perhaps you could be a little more explicit in the README about what you mean by "insertable stream" for people without the background. Is this like a dataflow-graph where you can combine streams using generic "operation" nodes/functions?

> The gist of it is that you have access to the video frames in the browser > now!

As a total newbie in this area, it sounds surprising that this wasn't already the case. Would you access these frames from Javascript or WebAssembly? Would this be efficient enough (in terms of speed and power use)?

</comment></comment><comment><USER2> Pion seems promising!

Is there anything like Jitsi built on Pion?

(I have been using Jitsi a lot lately. It is great software and a good example that free software can be just as featureful as the proprietary alternatives, but also a pretty complex software stack on it's own, there's a lot to learn just to extend it.)

<comment> Sean-Der Thank you :) Yes! There are three 'media servers' that I know of. You can also find more stuff in awesome-pion [2]

* [https://github.com/pion/ion](https://github.com/pion/ion)

* [https://github.com/peer-calls/peer-calls](https://github.com/peer-calls/peer-calls)

* [https://www.irif.fr/~jch/software/sfu/](https://www.irif.fr/~jch/software/sfu/)

Ion (the first one) was built with extensibility in mind. Each service runs in its own container, so you can just fork ion-app-web [0]. You continue to get the backend improvements though.

We are working on adding RTMP/SIP bridges as their own nodes. There is also a generic 'AVP' node that will allows media processing. You can save to disk, or other custom stuff you define.

If you are interested would love to have you involved. Hop on Slack [1] or feel to just leave ideas/feedback on Github!

[0] [https://github.com/pion/ion-app-web](https://github.com/pion/ion-app-web)

[1] [https://pion.ly/slack](https://pion.ly/slack)

[2] [https://github.com/pion/awesome-pion](https://github.com/pion/awesome- pion)

</comment></comment><comment><USER3> I am kinda annoyed by VP8. It is so widespread and so awful due no support in hardware. I think even latest macos doesn't support hardware encoding. Once video is on VP8 iPhone will became hot, 5 year old MBP turns on all fans.

Just switch to H264 and everything works just fine.

Quality is not that different.

Why everyone is obsessed with it?

<comment><USER4> > _latest macos doesn 't support hardware encoding. Once video is on VP8 > iPhone will became hot, 5 year old MBP turns on all fans_

I don't understand. Why isn't your question " _Why is Apple so extremely late to the party?_ " ?

An iPhone becoming hot with VP8 is caused by Apple not improving VP8 support, not by any inherent quality of H.264. They have been denying for quite a lot of time that the industry did standardize and make _mandatory_ the support for _both_ H.264 and VP8 if you want to implement WebRTC. Apple ignored that and until very recently, they decided to ignore half of those codecs.

If I had to guess, maybe "everyone" is "obsessed" with VP8 because H.264 is encumbered by royalties and stuff. VP8 is royalty-free, and its successor VP9 is too.

<comment><USER3> What? If your CPU have H264 then you shouldn't pay any licenses. You will have it in any CPU everywhere.

It is not apple late to the party, it is just doesn't make sense to implement VP8 in silicone. Also burning macbooks is Intel issue, not mac. Or may be chrome team are not using hardware acceleration.

VP8 is supported for sure, but this codec is subpar comparing to H264. I can easily encode H264 even on Raspberry Pi Zero and i can't do the same for VP8 at all.

Also average engineer doesn't care about royalties, but still everyone is using VP8 as default.

<comment><USER5> Disclaimer: I work on WebRTC somewhere in the codec stack. Certainly not the most knowledgeable in that field but here are a few reasons.

Software encoders will always have more features than hardware encoders, which are prone to bugs.

A bug in a HW encoder needs either a new driver or new silicone. You can't work with those and sometimes you can't even detect which version it is.

So if you want to ship a reliable application, you can either use a software codec (which you control) or hope the HW encoder which is totally random works as intended.

HW encoder bugs show in many forms. Sometimes the stream is just broken and can't be decoded, sometimes it won't listen to encoding parameter updates you send it (eg max bitrate or quality settings), sometimes it just generates a valid but bad stream (too many I frames, breaking the max bitrate setting), sometimes they have a TERRIBLE latency.

Sometimes, they just plainly lack features, for example can't encode temporal layers, don't have any denoising (useful for VP8), have a limited amount of instances limiting simulcast opportunities, have extreme frame size limitations (can't do screensharing with it)...

And that's just what I could come up with in a few minutes of thinking, I'm sure people who have worked on it for a much longer time would be able to say much more.

<comment><USER4> We could argue that those issues would apply exactly the same for both H.264 and VP8 hardware-based encoders, so these aren't reasons for lacking VP8 encoders in phones and other devices... otherwise we wouldn't have H.264 hardware either.

I agree in spirit with the parent comment (although judging from my post it would seem the contrary). Ideally, both codecs would have hardware encoders. The difference in performance and battery savings are huge. I just understand that the industry players felt that it was necessary to provide a royalty-free option among the proposed codecs... either that or it was just Google pushing their own thing, which also sounds very likely.

<comment><USER5> They do apply to all codecs, absolutely. Some just have historically more usage, so the encoders might behave better. There are still bugs though, I do remember hearing about some device producing an H264 stream that another device couldn't decode in HW. It's still not perfect.

Also, as many people have pointed out, VP8 is a more complex codec than H264, so harder to test coverage of all features, especially as most applications (especially on desktop) are not really doing RTC, which is quite a specific use case.

And phones DO have VP8 encoders. It's just that iPhones for historical reason don't have one. Pure speculation from my part, but I'm guessing they'll do AV1 someday as Apple is working on the spec.

But in general, even though HW encoders would be awesome for all codecs if they were working well in all situations, the reality is they don't always work, you usually need to build lists of HW that is supposedly behaving well with your use case. All advanced features (eg spatial layering) are tricky to implement in HW and are usually not configurable, so SW codecs will still have quite a lot of usage for the sake of quality.

</comment></comment></comment></comment></comment></comment><comment><USER6> How does WebRTC go together with HTTP/3 and QUIC, or is it unrelated at all?

<comment><USER7> Hey, I used to work on this :).

It's complicated :).

Basically, WebRTC is a combination of a bunch of protocols: ICE, DTLS, SCTP, and RTP. You could theoretically reduce that to ICE + QUIC for p2p use cases and just QUIC for client/server use cases.

For p2p, there is RTCQuicTransport (see [https://developers.google.com/web/updates/2019/01/rtcquictra...](https://developers.google.com/web/updates/2019/01/rtcquictransport- api))

For client/server, there is QuicTranport (see [https://web.dev/quictransport/](https://web.dev/quictransport/))

Of course, you'll probably want to be able to encode and decode some audio and video as well to make that useful. For that, there is WebCodecs (see [https://github.com/WICG/web-codecs](https://github.com/WICG/web-codecs) or [https://www.chromestatus.com/feature/5669293909868544](https://www.chromestatus.com/feature/5669293909868544))

For use cases like live streaming and cloud gaming, I did a presentation about the combination of WebTransport + WebCodecs: [https://www.w3.org/2018/12/games- workshop/slides/21-webtrans...](https://www.w3.org/2018/12/games- workshop/slides/21-webtransport-webcodecs.pdf)

And then there is the work happening in the IETF along these same lines: [https://datatracker.ietf.org/wg/ript/documents/](https://datatracker.ietf.org/wg/ript/documents/)

<comment><USER6> Thank you and others for answering me! :-)</comment></comment></comment>


Single atom feels the quantum heat - <AUTHOR> https://arstechnica.com/science/2017/02/single-atom-feels-the-quantum-heat/ <comment><USER2> That article just automatically scrolled for me, didn't much care for that</comment>


New York Governor announces 100% workforce reduction for non-essential services - <AUTHOR> https://techcrunch.com/2020/03/20/new-york-governor-announces-100-workforce-reduction-for-non-essential-services/ <comment><USER3> There is no doubt Cuomo should be the national point person for the response to the crisis based on his performance so far. He is independently working with regional manufacturing to retool to make critical medical PPE and ventilators, and has organized a regional coalition including CT, NJ, and PA. I have not agreed with him all the time, but his crisis management has been exemplary and he will have saved many lives in NY by the time this is done.

<comment><USER4> Sorry what? His state has the highest infection rate and he just _NOW_ did a 100% workforce reduction. He hasn't even issued "a shelter in place" order. BARS WERE OPEN MONDAY. Thousands of deaths will be on his hands. I think he should be criminally prosecuted.

NY needs to be locked down _NOW_.

<comment><USER5> For good _and_ for ill, it is Constitutionally problematic to "lock down" an entire state, as it is essentially placing millions of people under arrest, which in the general case is a stupefyingly terrible power for any government to wield.

On the other hand, the state can _totally_ shut down businesses. In circumstances like this, it is not suspect in the least.

I will further note that for Cuomo to be criminally prosecuted, he would need to commit some crime. Now, this happens sometimes in NY government (quite often, really) but it usually involves corruption; I am not aware of any particular law he has violated in acquitting his duties in this matter. Anger may indeed be _quite_ justified, but when politicians are prosecuted for their policies after the fact, this is usually more effective at turning a place into a banana republic than it is at improving the quality of the policies.

<comment><USER6> Under a declared emergency, the constitution turns more into "guidelines". Almost no right in the constitution is unlimited.

Speech and movement can be restricted with good cause, and this virus certainly counts. States right now very much have the legal power to say "no gatherings of any sort, no leaving your house without good cause, etc".

<comment><USER7> > Under a declared emergency, the constitution turns more into "guidelines".

That's certainly the way it's treated nowadays. That doesn't make such treatment right.

</comment></comment></comment></comment></comment><comment><USER8> It will be impossible for us to permanently stop the spread with half measures. As viral spread continues due to half hearted social distancing, when will we be able to return to normalcy? Given the characteristics of this virus even a few cases floating around seem to be enough to reignite contagion.

So we persist in stasis for a month or a year with no end in sight while the economy begins to collapse, which will also destroy lives and lead to humanitarian disaster?

And all of that on shoddy evidence which probably is not counting the true case fatality rate due to woeful ignorance of the total number of infected people?

This article from a Stanford Professor makes the case that COVID-19 mortality is not as high as initial reports make it seem:

[https://www.statnews.com/2020/03/17/a-fiasco-in-the- making-a...](https://www.statnews.com/2020/03/17/a-fiasco-in-the-making-as- the-coronavirus-pandemic-takes-hold-we-are-making-decisions-without-reliable- data/)

We also have potential treatments emerging that could alleviate much of the strain on the healthcare system.

We need to make rational and strategic decisions here, not decisions based out of fear.

Massive and systematic society wide testing is the first step, the second step is the bulk manufacture of demonstrated COVID-19 treatments. The third is ramping up hospital capacity.

All of this is so that we can reopen society in a reasonable amount of time prepared to deal with the inevitable spread of this virus.

<comment><USER5> > It will be impossible for us to permanently stop the spread with half > measures.

You're not going to like this, but at this point, no one expects anyone to permanently stop the spread of the virus. It is very contagious, it has a very effective stealth mode, and it is widespread. You should probably expect that over half of the world population will contract this virus.

New York's restrictions are primarily to make people contract it more slowly, so that the state (and other states) can deal with it more slowly.

<comment><USER9> China claims to have stopped it in its tracks.

<comment><USER10> China effectively let everyone catch the disease so that now everyone is either immune or dead.

<comment><USER11> This is wildly untrue and unfounded.

</comment></comment></comment></comment></comment><comment><USER12> To be clear, the governor unequivocally said this is not a shelter in place. It is merely language telling employers that they are to not have workers physically present.

The governor also said there will not be any civil penalties for individuals that do not stay at home.

<comment><USER13> I think this will open the door for NYC to fully "shelter in place" lockdown, however.

<comment><USER14> Yeah, they're boiling the frog. Each incremental step is normalized over a few days, and then there's a new, stricter mandate.

<comment><USER15> Except the virus is doubling over those days so completely ineffective.

<comment><USER16> Tests are a lagging indicator, the important factor is the R value. R1.5 is vastly better than R2 in the short term but pales beside R0.95. [https://en.wikipedia.org/wiki/Mathematical_modelling_of_infe...](https://en.wikipedia.org/wiki/Mathematical_modelling_of_infectious_disease)

Both South Korea and China have successfully gotten below R1, but it's unclear how long they can maintain that stance.

</comment></comment></comment></comment></comment><comment><USER17> > Mass transit will remain operational and restaurants, food delivery and bank > will remain in service.

This kind of article would really benefit from a quick bulleted list at the top, I had to skim to get this essential info

<comment><USER18> nyc.gov has a helpful list.

[https://esd.ny.gov/guidance-executive- order-2026](https://esd.ny.gov/guidance-executive-order-2026)

I was worried, because I _just_ dropped my clothes off at the laundromat.

<comment><USER19> You don't need clothes at home.

</comment></comment></comment><comment><USER20> So that's CA and NY both with shelter in place. Strange that WA hasn't implemented it yet.

<comment><USER21> This seems to be a reaction to people not doing it on their own sufficiently enough, like what happened in Italy. Perhaps Washingtonians are taking the recommendations more seriously, so they don't require an official mandate. That decision can't be a light one, and I don't envy those that have to make it.

<comment><USER22> There is no law enforcement action being taken for the NY or CA order. They're relying on "social-pressure" to keep people inside.

<comment><USER23> I've seen videos of NYPD going in and telling people in restaurants to clear out (from days ago). I wouldn't be surprised to see NYPD telling people to clear out for this too.

<comment><USER23> Adding onto this, people are indeed being arrested and charged by the NYPD for disorderly conduct and failing to disperse: [https://www.nydailynews.com/coronavirus/ny-coronavirus- state...](https://www.nydailynews.com/coronavirus/ny-coronavirus-state-pulls- liquor-licence-of-restaurant-20200320-eyu7qlo5rndodpi3snfdx5bkzi- story.html?outputType=amp&__twitter_impression=true)

More broadly, if you live in NYC and know the NYPD, then of course they're going to respond in this manner when such orders come out. When they have authority, they use it.

</comment></comment></comment></comment></comment><comment><USER24> I'm glad that the favorite son could do the right thing for the state of NY, particularly when their positive cases are exploding.

<comment><USER25> Cuomo loves half-measures and taking credit for not doing much of anything.

There's no force of law behind this order.

Earlier this week he announced "mortgage relief," but its means-tested and difficult to actually navigate. It won't help.

A year or 2 ago he rolled out his "free college for every new yorker" plan. It benefits about 10% of the population.

Cuomo's only skill is talking a big game. He's exactly as bad as most other neolibs.

<comment><USER26> 10% of the population of NYS is 2 million people.

It may be falsely advertised if it was claimed as "free college for every New Yorker" but I'm hard pressed to understand why people who support things like tuition free college programs get so angry about steps in that direction.

Even if it's only 10% of that 2 million people that actually need to go college it's still 200,000 Americans that are better off than they were before.

And didn't NY's legislature not turn blue until November of 2019?

I may be wrong, but if helping hundreds of thousands of low income Americans get access to higher education means your only skill is "talking a big game" and makes you a "bad neolib" I'm not sure that's a message I can get behind.

I don't know all of Cuomo's policies or history, he may indeed be a bad Governor, but I really have trouble understand the people who shit on others for moving us in a positive direction because it's not 100% of the way there yet.

</comment></comment></comment><comment><USER27> It seems highly likely that the US is headed where the whole of Europe is now: over 100,000 positives, over 5,000 deaths. We waited too long for actions like this. It will take a month before we see a drop in cases and deaths

<comment><USER28> A month? Wouldn't it be more like 1-2 weeks?

<comment><USER27> The problem we are going to have in the US is some states are responding better than others. NY looks bad right now because they are testing a lot. States like Florida, Louisiana and Georgia are already in double digit deaths each and don't have the positive cases to account for them. Going forward the rate of deaths will be far more indicative of what's happening than just the positive cases and that is going to continue to climb for at least 4 more weeks. Will we see a ban on interstate travel? What happens when one state gets the outbreak under control while another state's cases are still increasing? I'm extremely doubtful that any one state in the US will see a significant slowdown in cases in the next 4 weeks. No European country has yet...

<comment><USER29> As you can see with WA, deaths is not a perfect metric either. Florida also has a lot of retirement homes and one getting hit will skew that metric a lot.

<comment><USER30> Yeah, I am _very_ skeptical of extrapolation from deaths to get total cases. Just looking at China's numbers province by province reveals that the death rate varies quite a bit. Hubei has a very high mortality rate compared to the provinces surrounding it. Most provinces around Hubei had roughly 1 death per 1000 cases. But Henan, to the north had 22 deaths per thousand. There doesn't seem to be such a thing as a titular mortality rate for these viruses.

</comment></comment></comment></comment></comment><comment><USER31> Why does the guidance linked from the article here: [https://esd.ny.gov/guidance-executive- order-2026](https://esd.ny.gov/guidance-executive-order-2026) mention a 75% reduction and the actual order linked from there: [https://www.governor.ny.gov/news/no-2026-continuing- temporar...](https://www.governor.ny.gov/news/no-2026-continuing-temporary- suspension-and-modification-laws-relating-disaster-emergency) mention 50%?

Are they updating the order minute to minute?

<comment><USER32> > Are they updating the order minute to minute?

Yes. That was 2 days ago. It's a fluid, uncertain situation.

<comment><USER33> And is now 100%

</comment></comment></comment><comment><USER34> Similar article that covers the issue [https://www.courthousenews.com/teetering-on-lockdown- cuomo-n...](https://www.courthousenews.com/teetering-on-lockdown-cuomo-new- york-on-pause/)

</comment><comment><USER35> _There is currently no plan in place to penalize individuals for gathering socially_

Then people won't take the rules seriously.

Lots of people in this country still don't believe or understand how much damage this virus can inflict.

<comment><USER36> Man, I hate this take. I get where it's coming from. In times of significant stress, it's important that we all pull together and do work to benefit society as a whole. And part of the way we incentivize that is by calling out people who don't do their part. I get it.

But we are already inundated by outrage journalism, cancel culture, and public shaming. The last thing we need is more of that. We've already got enough things to be stressed, worried, anxious, and angry about.

The vast majority of people will respect the good advice coming from leadership, and those people are the ones who deserve our attention, in a positive way.

Look at this like engineering. With a large enough system, you are always going to have some components that fail. When your network has a million machines, you don't get upset when a server goes down, you just engineer some tolerance into your network, define processes to handle them, and go on with your life.

I have been constantly gratified by how many people are doing the _right_ thing and those are the people that I want to focus my own attention on. I think we will all get through this with a little more sanity and emotional health if we can take a break from the perennial game of torches and pitchforks for a while.

<comment><USER37> I am absolutely sick to death of outrage culture, and I thoroughly agree - <USER2> fact I think the outrage probably encourages the bravado of people who are engaging in risky behaviour atm

<comment><USER38> A great way to get rid of outrage culture, btw, would be to get rid of all the systems generating the outrage.

<comment><USER39> That assumes outrage is motivated primarily by flawed systems and not the psychological and social benefits that accrue to those who express the most outrage. It may also be true that outrage is not the best way to solve systemic problems.

<comment><USER40> I think in some cases though there are systems that funnel people into places that seem designed to evoke engagement and often the engagement triggers outrage.

I wish Jack Dorsey at Twitter would take a look at the absolute shit-show that is "Trends for You" in the Explore section. It's nothing but the most outraged people trying to whip everyone into a frenzy. I try to resist going in there, but every once in a while can't help but be sucked in and almost always regret it.

<comment><USER36> _> take a look at the absolute shit-show that is "Trends for You" in the Explore section._

I finally figured out a good solution for that. Click the gear and turn off personalized trends. Then set the country to a language you don't speak.

I don't know a lick of Latvian, but now Twitter is all about telling me what's going on over there.

</comment></comment></comment></comment></comment></comment></comment><comment><USER41> Seems so piecemeal. We have models that work in parts of the world like Korea, Taiwan and Singapore. Is there any reason why the US and Europe can't follow their model?

<comment><USER42> A lot of it might just be preparation. Not only "run-books" and hardware, but also wetware. I don't know for sure, but I'd guess those places have a lot more humans per case investigating-network-affects/supporting quarantine. US seems to just be working on getting hardware ramped up. I haven't heard anything about tracing case histories to quarantine contacts.

My impression is that like Taiwan didn't even shut down schools. They just locked down boarders and aggressively quarantined the infected.

<comment><USER41> That's my impression for Taiwan as well. Life there seems to be more or less normal and the virus also seems to be contained. The measures are focused on fast and pervasive testing, contact tracing and specific isolation rather than blanket social distancing.

I'm not knowledgeable enough to say either way but is there a reason that model doesn't work in the US or Europe?

</comment></comment></comment><comment><USER43> Do they have a definition of what constitutes non-essential?

<comment><USER44> Yes, the order has a specific list.

EDIT: Here is the order.

[https://www.governor.ny.gov/news/no-2026-continuing- temporar...](https://www.governor.ny.gov/news/no-2026-continuing-temporary- suspension-and-modification-laws-relating-disaster-emergency)

> Any essential business or entity providing essential services or functions > shall not be subject to the in-person restrictions. This includes essential > health care operations including research and laboratory services; essential > infrastructure including utilities, telecommunication, airports and > transportation infrastructure; essential manufacturing, including food > processing and pharmaceuticals; essential retail including grocery stores > and pharmacies; essential services including trash collection, mail, and > shipping services; news media; banks and related financial institutions; > providers of basic necessities to economically disadvantaged populations; > construction; vendors of essential services necessary to maintain the > safety, sanitation and essential operations of residences or other essential > businesses; vendors that provide essential services or products, including > logistics and technology support, child care and services needed to ensure > the continuing operation of government agencies and provide for the health, > safety and welfare of the public;

</comment></comment><comment><USER45> I feel like we should just do this nation wide.

<comment><USER46> USA is huge, and the virus is hitting different areas with different intensities. Its spread is heavily impacted by population density and rates of random social encounters. A Nationwide lockdown might make sense if the goal was to snuff the infection out, but as of now the goal is to lower the peak of the curve. If you lock down too early, you extend the infection to a length of time that makes the lockdown impossible.

<comment><USER28> > If you lock down too early, you extend the infection to a length of time > that makes the lockdown impossible.

Can you elaborate on what you mean by that?

<comment><USER47> This virus will be with everyone for 18+ months, the point of the lockdown is allow the Health system to catch up

If you lock down early you irreparably harm the local economy and simply delay a spike instead of "flattening the curve" unless you are willing to except a year long lock down, massive economic depression and the colapse of the US Dollar

<comment><USER48> This is happening in my area right now. The number of cases is little to none, but the governor threw a blanket lock down on bars and restaurants, etc, over the whole state. It was too early for my area for sure. So in the meantime, businesses and people's livelihoods are already being destroyed.

<comment><USER49> The number of infected though is unknown because we haven't tested many people. When it is known then lock down on bars restaurants etc. will be too late.

<comment><USER48> I live in South Carolina [https://www.scdhec.gov/monitoring-testing- covid-19](https://www.scdhec.gov/monitoring-testing-covid-19). You are correct testing is still low, but I don't think that data is useless. I don't agree with the notion that it 'will be too late'.

As others have said, the point of a lock down should to prevent the hospitals from getting overwhelmed, prevent ventilator shortages, etc. Nobody even knows if a preemptive lock down can 'squash' the virus. While testing is being ramped up, aren't there other ways to determine outbreaks? Can't our leaders communicate with hospitals and find out number of open beds, ventilators, an influx of patients with _suspected_ symptoms?

It is still going to be around once we come of of hiding, whenever that is, so it's possible we are just delaying the acceleration phase and we end up with the same result later instead of facing it now. I'm not saying there is never a time for a lock down, I just wonder if my local leaders panicked and did it to early, because they didn't know what else to do?

So in my area, the hospitals are fine. People are not flooding in the doors. Meanwhile thousands of jobs & businesses are being torched. My mom is a massage therapist, and is out of work for the foreseeable future. I just think there are smarter ways to go about it.

</comment></comment></comment></comment></comment></comment></comment><comment> y-c-o-m-b At this point wouldn't it be better to just implement a Chinese-style martial law lock-down? The damage to the economy is already here. Might as well shut things down for 3-4 weeks and slowly open up sections of a city. That seems better to me then dragging this thing out for 3 months or longer. I feel like these "stages" of lock-down are doing nothing but delaying the inevitable which will cause more damage in the long run.

<comment><USER50> I don't think authoritarian tactics like that, while effective, would fly in the US. I for one would not be ok with that. Once the government takes that authority once, who knows what they end up doing with it when they see they can get away with it.

<comment><USER51> I agree, as alarming as it sounds I think we'd need something much higher than a 2% fatality rate to justify completely giving up our civil liberties.

If anything it should be the elderly and vulnerable that are forced to isolate while the rest of society slows down for awhile, but even that I think is too egregious at this point.

<comment><USER52> Lincoln used marshal law during the civil war and even that was deemed unconstitutional in some areas. As long as there are functioning civil courts, marshal law is not considered justified, as I understand it.

<comment><USER53> It's "martial" ([https://en.wiktionary.org/wiki/martial#English](https://en.wiktionary.org/wiki/martial#English)) rather than "marshal" ([https://en.wiktionary.org/wiki/marshal#English](https://en.wiktionary.org/wiki/marshal#English)). The two are homophones, but the first means 'military' and the second is a particular rank or role within an army or government.

</comment></comment></comment></comment></comment><comment><USER54> Is there a non-paywalled link?

<comment><USER55> [https://www.nytimes.com/2020/03/20/nyregion/coronavirus- new-...](https://www.nytimes.com/2020/03/20/nyregion/coronavirus-new-york- update.html?action=click&module=Spotlight&pgtype=Homepage)

</comment></comment><comment><USER56> This submission and this one should merge:

[https://news.ycombinator.com/item?id=22638396](https://news.ycombinator.com/item?id=22638396)

<comment><USER57> Done. Thanks!

</comment></comment><comment><USER58> Why are the subways still open? Seems like low hanging fruit to close those.

<comment><USER59> On an interesting corollary, knowing what dangerously little I know about the MTA and its unions, are drivers griping about disease exposure? The NY subway is fairly labour-intensive as mass transit systems go...

<comment><USER60> I think the workers are going to be fine. The drivers and conductors have compartments. Station attendants have booths. The subway unions had to deal with the near-constant crime of the 70s and 80s, and didn't really want their workers out interacting with the general public. That turns out to be helpful in this case.

</comment></comment></comment><comment><USER55> Quote from NYTimes:

> For days, Mayor Bill de Blasio of New York City has pushed for a "shelter in > place" order and the governor has repeatedly dismissed the idea, saying he > would not quarantine New Yorkers in their homes.

He also spoke on a popular podcast earlier this week about DEFINITELY NOT taking this kind of action

<comment><USER61> The side effects of exponential growth. It changes minds quickly.

<comment><USER48> I think the growth is a result of a focused effort to ramp up testing. Meanwhile if we are to have any confidence in the numbers (we probably shouldn't), according to the John's Hopkins counts, New York state currently has a surprisingly low CFR.

38 deaths / 5715 cases = 0.7% CFR

<comment><USER62> Given the exponential growth curves, wouldn't it be more appropriate to compare the number of deaths right now to the number of cases a few days ago? On March 16 (4 days ago) there were 950 identified cases in New York state, yielding a 4% CFR.

[https://www.syracuse.com/coronavirus/2020/03/how-fast-is- cor...](https://www.syracuse.com/coronavirus/2020/03/how-fast-is-coronavirus- growing-in-new-york-chart-shows-dramatic-rise-in-cases.html)

<comment><USER48> Good point. As someone else said, deaths might not have caught up yet. But if we keep it together, I think we can hope to land at numbers similar to South Korea. They are well into deceleration phase, and are currently sitting at about 1%. Same for Switzerland.

</comment></comment></comment></comment></comment><comment><USER63> I think it would be hilarious if the first reporter to ask a question asks, "Sir, what was that percentage of workforce reduction again?" and writes the number down on a pad meticulously. Then the next, "Are you sure it's not 101 or 98 or something like that?" "Sure I'm sure! And I mean everyone!" And the reporters keep asking for the percentage again, while groping for writing pads as if they are terrified they will not remember or transcribe it correctly.</comment>


We Roam – Travel the world while working remotely. Thoughts? - <AUTHOR> http://www.we-roam.com/details <comment><USER2> Great idea!

</comment><comment><USER3> there are many similar projects. what differentiates you from others?

</comment><comment><USER4> Major focus is professional development, any feedback on the program is greatly appreciated!

</comment><comment><USER5> Good idea. How flexible are you to adjusting the trip locations for international affairs?

</comment><comment><USER6> love. this.</comment>