Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yo github... while you're bothering, here are some other things that would be handy:

* Visual STL diffs, maybe by coloring deleted/added triangles. Possibly with a viewer on gh-pages or on the /:username/:reponame/commits/:branchname endpoint?

* DXF sucks, but yeah DXF rendering.

* Maybe consider thingiview.js (which does not use WebGL) or possibly a WebGL equivalent viewer. Controlled rotation, zooming, camera repositioning, etc. It seems that most of these features are implemented:

https://github.com/josefprusa/Prusa3/blob/master/mini/z-bott...

https://github.com/josefprusa/Prusa3/blob/master/mini/y-moto...

* openscad rendering- I know this is a pain in the butt, especially since openscad still requires xserver. But at least it feels more like source code. There are some other options other than openscad that could be easier to render without an xserver, which would be fine in my book, I am not particularly attached to openscad.

* Other scripting/rendering options... maybe implicitcad, pythonocc (opencascade/python bindings), HeeksCAD/python, FreeCAD/python, OpenJSCAD, something like that. The problem with STL is that it's like transmitting compiled binaries to other developers, but what developers really want to work with is the source code. Having to commit STL is like having to commit compiled binaries.

* UI widgets for committing from SolidWorks, Pro/Engineer, CATIA, AutoCAD, HeeksCAD, FreeCAD, and other front-ends would be really useful. I would be happy to use github.com while working on my next fighter jet project.

* Upverter claims to support git, but really it's just a link to a remote git repository and you can't push your schematics to Upverter. Please feel free to eat their lying lunches. Maybe also circuitlab's (although they have never claimed to have git integration). So yeah, schematics.

* Some projects require thousands of parts that need to be included when rendering, especially in assemblies. It would be nice to be able to see a fully rendered image of a version of the repository contents. This quickly devolves into a mess of file format hell, which I imagine is not something you want to tackle. But maybe this could be done through continuous integration hooks or something?

For whatever it's worth, here's a terrible post-receive bash script I wrote in 2010 for scad rendering on a git server:

http://diyhpl.us/~bryan/irc/gitduino-post-receive.sh.txt

* It would be exceedingly awesome if you could get the RepRap project to jump ship from svn to git. RepRap is the largest, most well organized open source hardware project, and I think it would be a great community to work with to show how strong git is for distributed hardware development.

There are already some really excellent RepRap projects in git repositories on github:

https://github.com/josefprusa/PrusaMendel

https://github.com/josefprusa/Prusa3/tree/master/mini



Wow. That's a stupidly large amount of work, barfed out with seeming ignorance to the cost of implementation.


> Wow. That's a stupidly large amount of work, barfed out with seeming ignorance to the cost of implementation.

Actually, I implemented a lot of this on a private project in 2010-2011 that I never launched. There are a lot of other competitors trying to be "GitHub for Hardware"- but a lot of them fail to bother to implement git support. I think it's great that GitHub is moving in this direction.


Ah, cool. I was in the CAD space for a while, so your list made me twitch a bit. :)

Is your project open-source?


No, sorry. But the commit hook in the other post should be useful in terms of openscad file rendering..

CAD is a really interesting industry from an open source perspective. BRLCAD has done some really excellent work. "Something" needs to come in and bulldoze the mess that OpenCASCADE has left. It turns out that writing NURBS intersection code is really not a cake walk.. go figure. Not sure what that "something" is going to be yet.

Btw, I would love to talk with you about your industry experience. We could mutually complain about how terrible ISO 10303 is!


Sure. I wasn't in for a super long time, but worked on space-planning and other AEC software. Shoot me an email and we'll take it from there.


LOL you talk about such features as if they're simple add-ons! Each is a huuuuge commitment from dev to maintenance. But yea, it'd be nice.

GrabCAD is about as close to this as you get as far as implementing solid CAD stuff.


The maintenance commitment cannot be understated. If you add some kind of processing to a file format, people are going to expect it to always be there, and always work, so you're taking on an eternal renderer maintenance workload. That said, we'd love to cleverly render all sorts of formats. The limitation is the time and developer energy to do it right and keep it updated.


Why not allow third parties to develop plugins, if you don't want to maintain the feature yourself?


Totally - especially because these are hard to maintain if they go wild I assume.


> LOL you talk about such features as if they're simple add-ons! Each is a huuuuge commitment from dev to maintenance.

Nick, you and I have met, we've talked about this before. I'm really surprised that you think that I think they are simple add-ons. We've talked for hours about these things, how the heck could you get that impression from me!


Yea, I know Sir Bishop, so don't get offended. It just seems your post made it seem easy. This would be a massive change in direction for GitHub; it's massive technical complexity when they probably don't feel they fully know what's going on with 3D / CAD. We'll get there.


Somewhat serious: why not apply for a job at Github?


> Somewhat serious: why not apply for a job at Github?

Feel free to send me an offer :)

https://github.com/kanzure

kanzure@gmail.com


Github is not going to support backend rendering of 3d files.


Seems like the smart thing would be pushing rendering to the client. This is already done in real-time for coarse and simple models like PDB.


> smart thing would be pushing rendering to the client

They seem to be doing precisely that:

"This viewer is powered by Three.js and uses WebGL when available, but will fall back to the slower canvas renderer."


Yea, but good luck having a browser-based B-Rep kernel or some such. Seems like GrabCAD, etc. are doing back-end processing -> polygons in the browser using three.js, etc.


Shapesmith is also doing backend nurbs (OpenCASCADE + erlang server) with front-end rendering.

I think it would be possible to implement nurbs (or brep) in javascript, once there's an open source (and maintainable/legible) library that actually does nurbs intersection.

OpenNURBS doesn't count because Rhino has kept all the interesting bits to themselves. BRLCAD has had people from GSoC implement some of the remaining closed-source parts of the OpenNURBS library, so maybe they have had some recent progress on this front?

OpenCASCADE doesn't count because trying to extract just what you need is like trying to rewrite the multiple decades of software piled up in there..

Edit: Nick, didn't we have this exact conversation before in some HN comments like two years ago? I feel like we did and I feel bad for not remembering the url. Maybe this?

https://news.ycombinator.com/item?id=3320172


They also don't do backend testing, but there are still service hooks for it anyway.




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

Search: