This looks amazing, works absolutely perfectly out of the box and is probably one of the fastest prototyping tools I've seen for someone who knows what they're doing. And all of that in the browser — we've come a long way, amazing.
I worked a demo booth for AutoDesk in the mid-90's. We had just released a Gouraud renderer for the Intel Pentium Pro launch and people were amazed to watch it render a few thousand polys (no textures, just interpolated vertex shading) in a few seconds.
It's not so much that the browser can do it, as it has been able to for a long time, but that an app in a sandboxed environment, with an abstraction between itself and the host machine, can do it in decently fast times.
But why is that a good thing? You're just making an argument for an inner platform, but without any factual justification. Is sandboxing truly critical? (millions of graphical artists using Blender, Maya, etc don't care) Abstraction? Why is that important, the amount of work to get a 3D app to do something interesting in the browser is about 10X that of writing a qtpy app, and I don't see the value in any "abstraction".
webgl was a good idea and I dedicated years to trying to make interactive browser applications, and now I've concluded that if I want to make product in time, that works for decades, on all platforms, at speed, I will use systems like Qt for desktop apps, not browsers.
I played with this app and it's a great experience, I didn't have to install anything and have shared it with a few people who (in a few seconds) were happy creating stuff. None of us professional artists (like millions of people out there).
For me, that's amazing. There's a lot of value in having options (with low friction) for casual creators like myself.
Agree with your point about dev experience being painful though.
And you are just acting as a gatekeeper. This app is accessible for anyone who is not able/willing to install something locally like a kid using a computer at school. This is what sandboxing gives you. Blender and Maya are useful for experts. Not all tools have to target experts.
I remember the 1990s, which probably informs my view here, but I'll tell you this: There's something to be said for targeting a cross-platform browser instead of a single OS. Windows. It was Windows. Outside of what the (much smaller!) Open Source world developed, stuff worked on Windows in the 1990s and practically nothing else.
Now I can open a browser and have a 3D sculpting application and nobody needs to care what OS I run. You can denigrate webapps all you want, I won't hear you over the sound of how happy I am that I don't have to dual-boot with Windows anymore.
Chromebooks are everywhere these days. They do have to fallback on Android apps and Debian apps sometimes, but this is also what makes them so versatile.
You can only say this by having no clue of the machinery involved.
This is all going through IPC in a command buffer like architecture where the display lists are formed in another process. Where you can have several framebuffers that you can render 2d, 3d and intermix them in a beautiful final output thanks to the sophisticated compositor.
The state-of-the-art on desktop was a in-process direct rendering instead.
Modern browser are wonderful machines, we should be glad we are seing this happening.
Also, Google contantly are being bashed on HN, i know, who like the big man right? i think this we should thank them for pushing the envelope on a open platform, that will probably even eat the closed app platform with time.
Just Dorothy-like hackers would'nt be able to fight back the awful world of closed source applications platform if browsers were not what they are today. We are constantly in danger to get back to where we were in the nineties. If this whole "cloud computer" paradigm were not enough of a threat to a world of global scale control of the digital life of billions by only a few.
Its good to be skeptic and bash the big man, its important to fight back, but lets respect and give them props for the things they do right. A piece of software that has value on its own by the way.
So you know that the tech to get were we are today, despite doing almost the same as a early 2000's tool, had to overcome a lot of obstacles to become available to all platforms in a open way, with a open 3d api, where you dont need to be forced on having Windows and buy a super expensive(as it was back in the day) license a closed source software.
Giving your presented credentials, you should now how and why this is not exactly the same.
Software is constant automation and improvement, and if the things we suffer to do today, that can make someone be considered special and be well payed, will be achieved easily by children in the future, its just because of the hard work of the pioneers that suffered but persisted in the beginning.
The Unix was there in the 70's, and yet we celebrate "the same" old thing today, because its open, its available and even kids can change and compile it in its Linux incarnation.
So while it maybe looks the same under the surface, its definitely not the same, and we should be glad every time technology gets popular and easy, because its not easy to get there.
Edit: Sorry for the way i've started my first commentary, it was rude and unnecessary, rather you knew or not anything about the matter.
You mean a desktop app that you need to download, install, and during the installation potentially give some privileges that can harm your computer.. then you are trying to install and it doesn't have the right dependency so it asks you to find some random thing to get it working. Then you do get it installed, but don't know where it installed to so you have to go searching for it. Then you get it up and running and it works fine. You play with it for 5 min. 2 months later you come back to it and want the newest version, so you have to download an update, because the auto-update feature was blocked by your firewall. Then you get it updated and running. A couple days later you decide not to use it, so you go to uninstall it. The uninstaller fails for who the f knows why so you delete the folder on your drive, but your OS still think it's installed. So you figure out how to manually remove it.
That's all well and good if you trust other people. FWIW this guy allows you to download his app, and it's open source and a very impressive achievement. In general though, I'd much prefer having an old version of an app that works (I'm still using Max 2016 or something) than the joy of waking up one day and have things be worse than they were before. All the things you mentioned in my view are a small price to pay for peace of mind that you're not beholden to someone else's whims. (See the story about Oculus currently on the front page)
> 2 months later you come back to it and want the newest version, so you have to download an update, because the auto-update feature was blocked by your firewall. Then you get it updated and running. A couple days later you decide not to use it, so you go to uninstall it. The uninstaller fails for who the f knows why so you delete the folder on your drive, but your OS still think it's installed. So you figure out how to manually remove it.
this is incredibly better than the "web scenario" which is (and I got burned by this two times - there won't ever be a third time), "you come back to the app two months later, except the company has shut down and all your data removed" or "you come back to the app two months later, but you now have to pay for the superior tier if you want to be able to edit your stuff because some features you were using have been moved in that tier" (hello genmymodel), or "you come back to the app two months later and it's now super slow and has a couple annoying bugs but you can't downgrade because it's a web app" (hello asana).
I was looking for digital sculpting apps a few months ago for my iPad and I wasn't too happy with the interfaces compared to Blender. This looks exactly like what I was looking for. Amazing work.
For those new to approachable 3D sculpting tools, they have been around for a long time on the desktop, but between the improvements of smart phones and the web there have been attempts to expand into those areas.
One of the older popular tools like this on the desktop is called ZBrush and they have a free version called ZBrushCoreMini limited to non-commercial usage scenarios: https://zbrushcore.com/mini/
Clearly one of the benefits of SculptGL despite not having every feature out there, is that it is free for commercial use. One example is Sketchfab using an older version of SculptGL here: https://labs.sketchfab.com/sculptfab/
The Dreams presentation is definitely a must-watch for anyone interested in sculpting.
Their splatter tech is so amazingly neat that I can't wait to see it in more games.
Didn't try clayxel and mudbun but they already were in my favorites, still waiting for any of them standing out ;)
Before they hired the author, I worked with the Sketchfab team to deliver a version of the app that published to Sketchfab https://labs.sketchfab.com/sculptfab/
I'm sure you know this already, but for anyone else browsing the comments, there is also free version for non-commercial use: https://www.onshape.com/products/free
I did a massive project using Onshape's APIs. It's a fantastic product -- excellent modeling tool that performs very well, but the kicker is the language that makes up the underlying 3D "document"[0] into a set of instructions program, the "API" of which can be queried/manipulated/rendered/tesselated and fully edited using their REST API. The language, itself, is designed to be serialized to JSON and you can basically create very interactive program-3D-document-like-things. Or you can just mouse around and build objects in a similar manner to Fusion360 (I find Fusion easier to use, though).
We were an early customer of the API and were using it in ways it wasn't designed for so we encountered some problems early on ... the team over there consistently under-promised[1] and way-over-delivered. They were purchased by a competitor, recently (not Autodesk). The company that approached us to build a 3D customization tool on the web specifically required we use Onshape because they were a Solidworks shop and they were loving the web app's compatibility and features.
[0] It's hard to find a good name for what, exactly, it is. Storage-wise, a document in Onshape closely resembles a git repository. Under the hood, much/most/all? appears to be made up of FeatureScript, which is a language expressing transforms/operations on components within one or many documents (I'm not a cad guy/was concerned mostly with the back-end API, not the make-up of the docs, so this is probably partly wrong -- google FeatureScript for more info).
[1] That's not a back-handed compliment -- they were careful to manage expecatations about a major performance issue being resolved in code by a specific date. They often "hinted" at dates, and the dates they hinted at were hit, usually in advance. For the worst of the performance issues, they spent hours with us working out a suitable workaround that eliminated the latency.
There's a lot of frames where you are not doing anything, so the image doesn't need to be updated, unlike most games where you always need to be refreshing the screen. Also, I believe that power management for webGL in general is/was quite bad. If I recall correctly, it didn't automatically adapt GPU power usage to the application, but rather it ran on a fixed power level. Maybe I'm wrong or misremembering, though; it would be great if someone else with more knowledge on the topic can give more details.
The biggest issue is that a lot of GPUs are blacklisted by browser vendors to force software rendering due to bugs in the GPU drivers that might cause security or overall software reliability issues. And a lot of those GPUs are AMD GPUs. And a lot of those AMD GPUs are in MacBooks. Thus why a lot of MacBook users complain about WebGL stuff pegging their CPU and kicking in the fans.
For the first link
> This page was last edited on 3 June 2015
For the second link
> This page was last modified on 9 March 2016
There's no way that I'm aware of to find the complete black/whitelists of each browser. The only way I've been able to figure it out before is to disable the blacklisting and see how performance in a WebGL app fairs.
Very impressive! This is awesome. Have worked on sculpting tools before and it's pretty dang intuitive out of the box.
Two minor suggestions:
1. On mac the undo mappings would normally be CMD+Z. Not sure if it's possible to map this in the browser or not but took me a moment to find Ctrl+Z (via menus).
2. The starting geometry is a circle with a flesh-colored tone. Not sure if this is randomized but it leads to quickly creating weird human-ish shapes. It also defaults to a mirrored circular/spherical brush. May want to consider a different default tone as you'll likely get lots of female anatomy drawn w/ the current settings.
Y'know, that sounds like an interesting idea for VR with some custom controller for tactile input and feedback... something like a stress ball, or silly putty, or something like this.
I'll be the next one to parrot the whole "nicely done" atmosphere -- it really is cool.
It's amazing what we can do in a browser these days[0] and it's only outpaced by how quickly, it seems, those things become dramatically better.
I worked on a project to build a web-based 3D configuration tool for designing custom industrial objects to be 3D printed (aluminum/various metals and some plastics for prototyping). During the two-year span of developing this solution (which went over due to non-3D-in-the-browser-related issues), the various technologies we were working with went from "we really need to do everything except for the final rendering of the (simplified) object on the client" to "it's less code/moving parts to do most of it on the client-side ... and moar textures". I believe the customer did just that a year later.
[0] 3D Accelerated and it works in Linux on the desktop ... in Firefox ... brilliantly. It's not that I'm surprised Firefox works -- it's always been fine for me on Windows. It's the combination of Linux and Firefox on nvidia hardware that usually results in odd tearing/performance issues in FF for me. Since recent updates and enabling experimental acceleration, it's buttery smooth.
Maybe I'm not seeing the powerful features, but I don't understand why people are calling it impressive. It seems to be just moving existing mesh nodes in the normal direction which is an extremely simple operation to implement. The more you sculpt, the worse the mesh quality gets until it starts self-intersecting, and you can't extrude from the side of an existing extrusion. I work on 3D meshing software and the hard problems are ones that involve modifying the connectivity of the mesh not just moving nodes around.
I was moving recently and needed to plan out the furniture stacking in a U-Haul truck, https://www.vectary.com/ was perfect for this, given I grew up on Blender I appreciate how much simpler the UX is (similar to this app).
https://pasteboard.co/JvX72mI.png Chicago Institute of Art, here I come! Seriously though, with zero sculpting experience I was able to immediately grasp the interface and make something. I am impressed.
Very nice to see. Wish I had some more time to flub with it.
Only critique is you need to allow for the brushes to be bigger. Specifically for the move tool as that is how I was taught to vreate primary forms before going in with any brushes.
SculptGL has been around for a few years. I think it got popular when Pixologic (makers of ZBrush, the original free-form sculpting application) bought and mostly neglected Sculptris (the original free clone of ZBrush).
That's really neat, it worked great on my desktop drawing tablet. I've been looking for something to sculpt with on an iPad while sitting on the couch in front of the TV, I'll have to try that out.
It just occurred to me that sculpting should happen in voxels, not polygons. Polygons get too large or too small after sculpting, and start to self-intersect.
I'm not the best person for this, but here it goes
Quick sketch:
- Learn WebGL (or OpenGL and transition)
- Learn some linear algebra, don't worry, all you need is 4D matrices, so you don't need to know proofs, just how to use it.
- Create a 3D graphics engine like this: https://www.youtube.com/watch?v=PH6-dLvZEiA (that's mine, I haven't progressed since in this area, so this is the level I'm at, enough to know what fields are needed to learn this but not enough to know all the specific techniques)
- Look up names/techniques people have used to create something specific like OPs post, see [1]
In fact, it's a really simple app: a height map on a sphere approximated with triangles. With a bit more extra complexity, the app could do raymarching on a interpolated height map: this would remove triangle artifacts around "cliffs" on the height map. It would still be real time 60 fps even on smartphones.
To do something like this, you need to know a bit of WebGL and a bit of JS. No frameworks really needed at this level. The best guide to WebGL I know of is this:
Complexity starts when the height map isn't enough and you want to make arcs or otherwise arbitrarily shaped structures. This is where you'd need a framework, unless you want to implement all the math and glsl yourself.
And as always, the idea is really the 1% of the work. Anyone can say "it's just a height map on a sphere". 99% of the work is materialising the idea, debugging glsl, fixing ugly bugs on smartphones and esotheric browsers, dealing with partial WebGL API and so on.
I think since you've asked this question, it's been answered that this specific tool was written using SculptGL.
How do you even start? I started with `three.js` about two years ago and a ton of documentation. I didn't write a sculpting tool, but I wrote a PoC for a tool that "renders" custom tessellated data, pan/tilt/zoom, by the documentation from their site in about a weeks' time[0].
[0] I do more back-end than front-end, but I did the PoC in React/TypeScript with a kludge for the Canvas and a few ugly functions for handling loading/camera positions.
works great on iphone even. i remember when alias waveform maya came out with its sculpting tools 15+ years ago and you needed a $2000 graphics card to use them with reasonable responsiveness.