Hacker News new | past | comments | ask | show | jobs | submit login
Fluid Paint Simulation (david.li)
605 points by anonfunction on Feb 8, 2017 | hide | past | web | favorite | 87 comments

You can compare this to what I believe is the state of the art system, "Wetbrush":

https://www.youtube.com/watch?v=gwyqh4d-WU8 (SIGGRAPH Asia 2015)

https://www.youtube.com/watch?v=k_ndr3qDXKo (Adobe demo)

Of commercial applications, Corel Painter remains the professional natural media paint tool:


It's been around for about 25 years and some of the UI is a bit creaky, but on the upside, it's pretty fast on modern desktops and it still gets regular updates. Brush strokes with 3D depth ("impasto") were introduced a long time ago, maybe late '90s.

Also, here is an example of one of mine. Its pretty old now but runs really well on old ipads: https://www.youtube.com/watch?v=BbbQk9JK2OY Also been developing a (super fast) paint system for Unity mobile/VR: https://twitter.com/DaveSapien/status/800044501159079937 ....and here is another one of my paint systems for a new game I'm working on: https://twitter.com/DaveSapien/status/791628287915196416 Hope you like!

His other work is cool too: http://david.li/

This is a great share. The Fourier example is a great way teach about Fourier series and decomposition. Very cool!

the green Vortex Spheres maxed out my gtx 1070 what the heck

I have a 1080 and didn't even turn on the fans. Something is wrong.

Tried to open it on my Chromebook. Ouch.

Outright crashed my firefox :) Seems to be very demanding.

It appears to be some sort of fluid simulation.

This seems obvious but somehow I never considered that you need three dimensions to replicate the feel of most paints.

If you are accustomed to seeing prints and photos and computer scans, it's easy to overlook how oil paint is like a sculpture. Watercolor, not so much.

Another "natural paint" painting program is ArtRage [1]. They have, bar none, the friendliest, most supportive discussion forums I've ever seen on the internet.

Oh yeah, the painting program's pretty good too :-)

[1] https://www.artrage.com

This is very cool. One thing that I think could be improved: It looks like the model is treating the white background as if it is also paint. This leads to some weird results when painting over existing strokes.

Really awesome work though.

This could be intentional. It's a fairly common technique to paint on top of a wet white basecoat[1].

[1]: https://en.wikipedia.org/wiki/Wet-on-wet

Hmm, good point. I'm guessing it also makes the model a lot simpler.

I loved it, I feel like it could make some nice backgrounds and decorative paintings will a little more tries: http://imgur.com/a/XBUgn

And it's open source: https://github.com/dli/paint (I posted my issues there)

Fantastic. One criticism. On click please make the paint "dip" and paint, and the paint on the brush should wear out. Then it'll really feel like painting. Click again is to re-dip in the color of choosing.

This will even let for mixing of colors like on a painter's palette.

:) Very nice tool.

To "really feel like painting" for me it would have to simulate spending hours with blue tape, spilling on my shoes, making multiple trips to home depot... sounds like a job for VR... ;)

Great stuff! Reminds me of Verve Painter[1], which is a fleshed out fluid-simulation-based oil painting app

[1] https://www.youtube.com/watch?v=PBO2hNv_tTE

Cool. Something like this could combine nicely with my automatic painting algorithm: http://www.forwardscattering.org/post/42 http://www.forwardscattering.org/post/44

20 seconds of drawing with default parameters and laptop temperature went from 40 to 70 °C. Not bad :D.

Nice work though, very beautiful and realistic.

This is awesome. 3D work really have the wow factor. This is definitely at the WOW level.

Edit: I would say couple this with VR and it would be a truly awesome experience.

Like MS Paint, but for VR. Interesting, the "websites" of VR will be worlds... I can totally see people throwing in this kinda stuff "just because wow new technology" in the same way that websites back in the 90s threw in snowflakes falling on the screen, custom pointers, epileptic lighting, audio, flash, etc.

I really hope web concepts move gracefully into VR. I suppose "immersive location" is just like a URL and full-VR experience is just another Content-Type.

pls no

Looks sweet, but the paint definitely continues sliding in the direction of the stroke for too long. Paint basically just sticks immediately where you put it, it doesn't have that type of momentum. Even at the lowest fluidity level.

A similar app without opengl (for ipads and such) http://ba.net/util/finger-oil-painting/

iPads support WebGL / OpenGL just fine

Interface doesn't seem to work on an ipad ( maybe because of event handling though)

Touch event support please!

Here is another eastern watercolor painting tool "Expresii"[1].

[1] http://www.expresii.com

So bizarre: I saw this post last Saturday, loved the site and David.il's other pages, showed some friends... Then I could not find the HackerNews post again. Here it is now, yet it says it was posted within a day, with no history of being posted before. Odd...


Not surer why it's not showing when you search. I got here by using HN search for the URL and picking the one with more comments--both showed up for me.

Click on the domain to see all previous posts.


The most recent was missing the word "Simulation", so clicking on the "past" link does not show it since that is a search by all words in the title.

Perhaps it was deleted for some reason, and posted again? I definitely remember seeing it here earlier.

Amazing how well it handles painting on top of previous strokes.

See a history of fluid sim applied to watercolor-like painting: http://www.expresii.com/blog/innovations-in-digital-painting... A quick look at David Li's source code seems to suggest Li's work is based on Mark Harris' GPU implementation (with Jacobi iteration) of Jos Stam's method.

My MacBook Pro sounds like it's taking off a runway :P

Doesn't have dark colors. The darkest paint is brown.

the box in the middle of the color picker is saturation and lightness, drag towards the left on the top of the box to reduce the brightness downward.

The darkest color comes out as brown for all colors though.

You're right... I hadn't tried black.

Reminds me of Verve. I watched the author's channel on Youtube religiously, hugely enjoying his video demos with each new release. Sad to say there hasn't been one in like 2 years.


Oohh! i was looking for this! i remember seeing this a few years ago and being really impressed. It looks pretty good, although im not much of an artist so i dont know how it compares to the paid competition. The UI could use some work though.

it took me a while to figure out but im having a lot of fun with it. performs surprisingly well for me on only an intel integrated card.

Did you mean to use the term fluidity rather than the term viscosity? I believe they are mathematically inverse.

Reminds me of https://www.microsoft.com/en-us/research/project/project-gus... with later became Fresh paint.

Quite nice, though the paint colors don't combine like they do in this kind of oil painting. Can't make bob ross art without that. Also when you try to paint on the edges, the brush goes away, so its difficult to make a full picture without making it larger, and then cropping down.

This reminds me of Bob Ross and his "Happy Little Trees". I think I could paint some on here if the canvas were bigger, and there was an area off to the side to mix the paint.

I can't seem to create anything beautiful worth sharing with this. But damn, it is soothing and relaxing to play with. It feels almost therapeutic! Thank you!

I can't paint or draw worth beans - but I like it!

See also FreshPaint on any version of windows > 7

Is this using Navier-Stokes based fluid simulation?

Very nice. Lots of fun. The only thing missing is that the paint doesn't mix, ie. yellow and blue don't turn greenish etc.

At first I was like, "Wow, this is a cool effect, let's try a different col-- HOLY SHIT". Color me impressed!

Amazing. It seems like it'd be really useful to be able to zoom in and out as well.

This is oddly therapeutic and calming. My Macbook CPU was just fine as well. Very cool!

This is great for calligraphy with surface pen - can't find the black ink though.

With Opera 43.0.2442.806 (PGO) i cannot do a stroke at all it seems. Just reporting.

You can report on the GitHub repo: https://github.com/dli/paint/issues

Hitting a bandwith limit?

Hardware Limit it seems, doing this on a Lenovo minimun laptop, maybe OGL is outdated.

Like that, though I wish it would work with FF/Win10/XPS13 touch screen.

Pretty cool. Next step is mixing colors and different thicknesses like real oil :)

This is pretty impressive. It'd be really neat if the paint slowly dried!

Who would like to watch that? ;)

Computer can always speed that up.

Was playing with your other projects too. Great stuff and super fun. Sharing.

I feel like you deserve the nobel prize for this or something. Mind = blown

Cool! Any idea what model or method is used here (or is it heuristic)?

A quick look at the source code seems to suggest Li's work is based on Mark Harris' GPU implementation (with Jacobi iteration) of Jos Stam's method. Ref: http://www.expresii.com/blog/innovations-in-digital-painting...

It's open source ;) https://github.com/dli/paint

This is more of a 'mop' than a 'paint brush'.

Holy moly! Awesome work. It looks very realistic. Congrats!

Very nice work. Reminds me a lot of Corel Painter.

Very cool!

Man, does it peg the hell out of the CPU though! :P

It was hogging about 60% of one CPU core (Skylake i7) on my PC. Seems like it's re-drawing the screen at 60 fps even though nothing is happening. Should be an easy fix.

so cool, consider adding an option to remove paint from the brush so you can scumble the fluid to blend.

What primitives is this using?

Color me impressed

Wow !

This is too slow to use on my MacBook... I like the idea though, and it seems really cool.

Very cool, but please change the color selector. It is not intuitive, and it's very hard to pick even the most obvious colors.

That's a pretty common HSL-style color picker. It's great for artists and designers who think in those terms. Curious, do you have much experience in graphic design, or no?

I have zero experience in graphic design, but I do not think the simulation is made for designers.

It makes sense for artists, designers and painters included. This simulation looks like oil paint, and this type of color picker is like mixing pigment to get a hue and then mixing in black and white to change the saturation and value. I guess that makes sense seeing as this is a paint simulation!

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