Hacker News new | past | comments | ask | show | jobs | submit | tosic's comments login

I'm trying to get back into graph drawing [1] while learning to code in rust. I used to do some experiments in graph drawing a while back for my master thesis, but lost track. Now with the ACM archive [2] being open i got inspired to look into this again, even though many of the relevant recent papers would have been available anyway. Not the classics though.

[1] https://en.wikipedia.org/wiki/Graph_drawing

[2] https://www.acm.org/articles/bulletins/2020/march/dl-access-...


We implemented the "Depixelizing Pixel Art" Algorithm by Kopf & Lischinski [1] in Java and made an Android Pixel-Painter App out of it.

At some points we departed a bit from the original paper:

For the (approximate) Voronoi diagram we do not use a lookup table but look at the orientation of each neighboring edge to determine the resulting pixel shape because of that we have a special step that makes cell containing a single pixel surrounded by another color a bit bigger, as otherwise single pixel features appear too small (e.g. the dolphin from the original paper would otherwise get tiny Howard-Moon-Style eyes) we use Catmull-Rom Splines instead of B-Splines. As CR Splines go through their control points, we do not need the correction step for spline positions mentioned in the paper.

We have not figured out how to add the shading for non-contour edges yet. SVG (which is our target format) only allows Radial and Linear Gradients. We thought about using Mesh Gradients or diffusion curves, but they are not part of SVG yet... Also, the energy minimization step is still quite slow. We use local relaxation as recommended in the paper, which works but is not very fast. We want to try out some global methods that will hopefully speed the process up.

What do you think?

[1] (http://research.microsoft.com/en-us/um/people/kopf/pixelart/)


While this is obviously a good statement, it is besides the point. There's no reason you can't work on both and since he is caring about malaria, others can work on internet access. The question to ask would be, if working on both slows progress in either and what the "sweet spot" is for balancing funds and efforts to achieve the best overall progress.


I do not agree with the use of the word "scientific" in this context. Specially since it appears to be a shameless plug for a product.


If it ain't broke, don't fix it.


Really? Then how do we have progress? I mean, I prefer current notation, but who's to say that this is the best possible notation to express musical ideas? Although Hummingbird isn't going to supplant it for a lot of reasons, there may be a better system that will.


We do have progress by fixing broken things and by gradually improving working things. This did happend already over (quite some) time with the current notation.


Not all progress is gradual. Sometimes we need a complete overhaul. In this case, I don't see the need, but if there is something that much better than current notation, then I would hope that it does supplant this.


+1


Awesome. Instant buy!


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

Search: