Live data from Hacker News

A novel technological approach to vector graphics (“Vector Graphics Complexes”)

kickstarter.com

1–10 of 26 posts

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#2
Amazing, but this really should be a web-based app and not desktop based. Or a hybrid strategy where the desktop-based app is actually running JavaScript in an Electron shell or something.

Please switch your approach ASAP or you will be beaten by a web-based app that does this exact thing, someone else will be the Figma to your Sketch.

This specific use-case doesn't require the large amount of resources that would necessitate a desktop app.

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#4
Back in the early 2000s, there was a vector graphics application called Expression, created by Creature House, a small Hong Kong-based company (https://en.wikipedia.org/wiki/Creature_House_Expression). They also had a beta of an animation version of Expression, called LivingCels. It had been battle-tested in various local animation studios, and was just getting ready to burst into the market... (dominated, at that time, by Adobe Illustrator and Flash)

Expression was based on the founders' PhD work too: 'skeletal strokes', a really cool feature that allowed painting with complex vector or bitmap strokes.

It reached version 3, then Microsoft acquired the company in 2003, re-wrote the software, got it wrong... and quietly killed it.

Expression had the BEST user interface, was packed with features, and the website was whimsical and unique.

Guess what? It's still available! A free download for Windows, that works perfectly in Wine. It's better than Affinity Designer, and most other vector drawing apps. I would place it alongside Adobe Illustrator and CorelDRAW - except it's more intuitive and easier to use. (Sure, it lacks features, because it's nearly 20 years gone!)

I love this new vector graphics technology. But they have a lot of catching up to do to make a full-featured application. If only their tech could be combined with Expression (a far-off fantasy!), the world would have another awesome vector graphics application.

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#5

Amazing, but this really should be a web-based app and not desktop based. Or a hybrid strategy where the desktop-based app is actually running JavaScript in an Electron shell or something. Please switch your approach ASAP or you will be beaten by a web-based app that does this exact thing, someone else will be the Figma to your Sketch. This specific use-case doesn't require the large amount of resources that would ne…

Thanks for the comment, I'm the developer of the app! Having it run in a browser would clearly be convenient, but unfortunately Javascript is really too slow. I even wish C++ was faster.

Rendering the vector paths requires the same type of heavy computation as a modern AAA game, and we don't see AAA games implemented in Javascript for good reasons. The paths need to be tessellated, sent to the GPU, then the different layers need to be composited, and all of this takes computational resources.

In addition, unlike Figma where the vector paths are created by manipulating control points, in VGC Illustration it is expected that the paths can be created by sketching them, hand-drawn. This requires extremely low latency and high FPS for the drawing experience to be any good. There's already quite a bit of lag between the stylus and the shown stroke even in Photoshop, you don't wan't this to be any worse :)

I hope this makes sense.

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#6

Back in the early 2000s, there was a vector graphics application called Expression, created by Creature House, a small Hong Kong-based company ( https://en.wikipedia.org/wiki/Creature_House_Expression ). They also had a beta of an animation version of Expression, called LivingCels. It had been battle-tested in various local animation studios, and was just getting ready to burst into the market... (dominated, at that…

Wow, this is cool, I had heard of Expression but didn't the whole backstory. I will definitely have to check it out.

And indeed I have a lot of catching up to do feature-wise :) VGC Illustration won't be able to be as feature-complete as Illustrator for a long time, but hopefully the killer features and better drawing experience will make up for it.

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#7

this looks very cool, I've long wondered why vector graphics tools seem to have largely stagnated in terms of features and such.

It is indeed strange, the technology hasn't progressed much, especially compared to 3D modeling/animation! I hypothesize that the stagnation is because researchers in computer science are more naturally drawn to 3D since the problems seem more fun and challenging, and they may not realize there are still things to improve in the 2D world.

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#8

Amazing, but this really should be a web-based app and not desktop based. Or a hybrid strategy where the desktop-based app is actually running JavaScript in an Electron shell or something. Please switch your approach ASAP or you will be beaten by a web-based app that does this exact thing, someone else will be the Figma to your Sketch. This specific use-case doesn't require the large amount of resources that would ne…

Thanks for the comment, I'm the developer of the app! Having it run in a browser would clearly be convenient, but unfortunately Javascript is really too slow. I even wish C++ was faster. Rendering the vector paths requires the same type of heavy computation as a modern AAA game, and we don't see AAA games implemented in Javascript for good reasons. The paths need to be tessellated, sent to the GPU, then the different…

How are you rendering these vectors on Linux?

I'm asking because AFAIK unlike Windows with Direct2D, Linux doesn't have GPU-targeted vector graphics libraries. I have once made my own one when I needed something similar: https://github.com/Const-me/Vrmac#vector-graphics-engine

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#9

Amazing, but this really should be a web-based app and not desktop based. Or a hybrid strategy where the desktop-based app is actually running JavaScript in an Electron shell or something. Please switch your approach ASAP or you will be beaten by a web-based app that does this exact thing, someone else will be the Figma to your Sketch. This specific use-case doesn't require the large amount of resources that would ne…

But why should it be web-based? Why would something else web-based 'beat' this based on that fact alone?

Re: A novel technological approach to vector graphics (“Vector Graphics Complexes”)

#10

Amazing, but this really should be a web-based app and not desktop based. Or a hybrid strategy where the desktop-based app is actually running JavaScript in an Electron shell or something. Please switch your approach ASAP or you will be beaten by a web-based app that does this exact thing, someone else will be the Figma to your Sketch. This specific use-case doesn't require the large amount of resources that would ne…

Thanks for the comment, I'm the developer of the app! Having it run in a browser would clearly be convenient, but unfortunately Javascript is really too slow. I even wish C++ was faster. Rendering the vector paths requires the same type of heavy computation as a modern AAA game, and we don't see AAA games implemented in Javascript for good reasons. The paths need to be tessellated, sent to the GPU, then the different…

I think you can tessellation on the CPU in an adaptive fashion (e.g. based on curvature or similar) and update that on a per frame (add, remove tessellation points) basis rather than re-tesselating from scratch each frame. The tessellation would just have weights from each control point.

You can modify the vertices on the CPU, update the tessellation points and update those to the GPU. Get 60fps should be possible even when updating 1Ks of vertices (probably more) per second. Do this for whatever changed using dirty lists or something so you do not update everything to the GPU on each frame. This should be relatively fast if you using ArrayBuffers.

100% this can be done in JavaScript in a very fast fashion. It may only seem like it can not be done if you are doing JS poorly. Maybe people make the mistake of not using ArrayBuffers for everything and that makes it slow. The main limitation in JS is the lack of really great multithreading, but I do not think you need it here.

If you want ultimate speed use WASM for the CPU-based updating of your geometry structures.

Anyhow, you are mistaken in your current beliefs and it will hurt you going forward.

Post reply on HN