Flash was great. Is there anything Flash could produce that wouldn't render these days with SVG + CSS + JS?
I remember trying to produce a Flash renderer in C# when we wrote DudeFactory to render out the characters after you used the Flash app to put all their clothes and accessories on. I think we cheated in the end and pre-rendered large PNGs of them all and used .NET to just layer them all with instructions sent from Flash.
SVG + CSS + JS was hailed as the Flash-killer. But authoring tools never materialized. The tech stack can render the same things, but the process of creating anything beyond a static image in SVG is night and day compared to making the same thing in Flash
Flash should have transitioned into an authoring tool for SVG + CSS + JS but it just took a knee because so many people hated flash for all of its warts by the time SVG and Canvas moved vector graphics rendering to the browser. Flash was a real pain the ass for most web users and Web 2.0 technologies did kill it.
> Flash should have transitioned into an authoring tool for SVG + CSS + JS
Didn’t it? IIRC, Adobe had such a tool at some moment, and part of it seems to (somewhat) live on [1]. https://en.wikipedia.org/wiki/Apache_Flex:
“Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich web applications based on the Adobe Flash platform. […] Adobe donated Flex to the Apache Software Foundation
[…]
In 2014, the Apache Software Foundation started a new project called FlexJS to cross-compile ActionScript 3 to JavaScript to enable it to run on browsers that do not support Adobe Flash Player and on devices that do not support the Adobe AIR runtime. In 2017, FlexJS was renamed to Apache Royale. The Apache Software Foundation describes the current iteration of Apache Royale as an open-source frontend technology that allows a developer to code in ActionScript 3 and MXML and target web, mobile devices and desktop devices on Apache Cordova all at once”
[1] I may be wrong though. It’s not easy figuring out what Flash code ended up in which of Adobe’s Flash-like products over time.
I think Rive[0] is quite competitive with what was possible back then in covering the full authoring stack.
[0]: https://rive.app
> Is there anything Flash could produce that wouldn't render these days with SVG + CSS + JS?
probably not. The only difference is that it'd be build once display everywhere. Flash meant that everything looked the same regardless of browser or platform.
Its a lot better nowadays, but its not as easy as flash was.
The _key_ thing thats missing is the flash IDE/designer. There are no compelling editors/environments that allows both artists and coders to work in the same space.
Sure I can use Illustrator to make graphics, but there are no animation systems out there that allow me to animate well (I can render a unity app to HTML/JS but thats not quite the same)
Guaranteed deployment, and the lack of an IDE which works for both programmers and artists were definitely the two advantages Flash had.
I'd really like to find a replacement which clicks for me the way it did --- started out w/ its predecessor, Futurewave Smartsketch (used it on PenPoint, Mac and Windows, and for Windows, continued using through a succession of pen tablets, most notably my Fujitsu Stylistic ST-4110 which I despair of replacing --- transflective displays went out of vogue).
Yeah, there's two approaches to rendering Flash vector art.
You can turn the curves into polygons, or render them to textures. Ruffle, I recall, makes everything polygons (so it's a little chunky if you zoom in?), and Super Meat Boy rendered everything to textures.
I'm not sure what the actual flash player did, which seems to have pretty decent performance relative to Ruffle in my testing.
Maybe they have some proprietary technique for rendering curves quickly on a GPU? (I read a paper on rendering curves, and there's OpenVG, which I think came later and nobody uses?)
OpenVG is just an API by Kronos group, that was never implemented by hardware vendors on desktop graphic cards (it was specifically created for mobiles, as OpenGL|ES).
Btw, there exists several implementations, with pure CPU rendering (like AmanithVG SRE) and others with GPU backends.
>Flash was great. Is there anything Flash could produce that wouldn't render these days with SVG + CSS + JS?
This has more or less been the line from the day Steve Jobs decided Flash would never be available on the iPhone. And it was readily apparent that no one who said that worked in the audio domain. Things are much, much better now, but I remember challenging myself by trying to build a drum machine in HTML, Javascript, and CSS (not wanting to muck about in Canvas at the time) and while I could make it look decent enough, there was no such thing as a solid, reliable clock in Javascript, for about a decade. Just the way you played audio files back varied from browser to browser on the same machine. It was absolute garbage.
In-browser capabilities have basically caught up or exceeded what Flash did - I don't keep up anymore - but to echo other replies, the authoring tools just aren't as accessible. Maybe vibe coding tools close that gap. But the forced sunsetting of Flash set online interactive multimedia back at least a decade. It was never my main career path, but I more or less abandoned that fun side quest, and as evidenced by my feeling the need to comment here, it still kind of bums me out.
> Is there anything Flash could produce that wouldn't render these days with SVG + CSS + JS?
This sounds like a "is there anything you can do in C++ or Javascript that you couldn't do in Brainfuck?".
Flash was a complete authoring environment. Yes, you can replicste the output in JS+CSS (or more likely JS+Canvas/WebGL/WebGPU), but at what cost and with how much effort?
Technically you may not even need js, since SVG has integral support for SMIL.
Have you ever tried that out? Last time I checked (some yeqrs ago) wide support (and performance) was not great but more importantly handling I found not great.
Support and performance might have improved, but I think the style is still ugly and good authoring tools non existent.
2D and 3D games, with good developer and debugging tools.
Every time I see SVG mentioned with Flash I just think it's immensely ignorant. No offense, but programmers love to think of "vectors" as SVG because it's all they know. For several years I kept hearing people say "we have HTML5 and SVG now, so we don't need Flash anymore." And with that Flash animations and games were lost forever and I'm still bitter about it.
For artists, SVG is probably the worst vector format imaginable. In fact, I'd say any project that uses SVG as backend is doomed to fail with artists. It's pretty much a red flag at this point that if "supports vector" means "support SVG" they're doing it wrong and just chose the easiest to implement vector graphics because you probably have a billion open source SVG libraries at this point instead of rolling their own proprietary vector rendering algorithm that actually improves the artists' workflow.
To answer your question, the important thing about Flash wasn't the vector rendering but the vector art authoring tools. You could make Inkscape work like Flash, but nobody has done that yet. All you need is a brush tool that automatically does union of shapes of same color and subtraction of shapes of different color so the whole layer is always "flattened" with no shapes overlapping. This is the sort of thing that made Flash exceedingly easy to use for artists. It was a vector art program that worked exactly the same way as a raster digital art program. It thought of vectors not as shapes that the program was going to render but as paint strokes on a canvas.
If you were building a vector art software today you probably would want all sorts of things that SVG doesn't provide, e.g. line art with varying thickness based on tablet pressure (although Flash didn't need this, since you could draw shapes instead of strokes). You might also want to take a look at OpenToonz' vector implementation, which has "fills" that automatically expand when you change the enclosing strokes and an indexed color palette system, and CSP's line art vectors that let you use textured raster brushes with settings like dab scattering in vector strokes.
By the way, I also believe the idea that HTML5 could replace Flash games was insanely stupid. Anyone could make a Flash game and deploy it to web browsers in one click. Do that in HTML? With Javascript? Which means you need to download all these images/audio from the Internet? You want to play it locally? CORS issues, baby! Now you need to turn this mess into an electron app or use the most disgusting build step imaginable to turn whole jpegs into a base64 strings so you can create a single HTML file that is several megabytes. How did the entire world convince themselves that this was an actual replacement of Flash's functionality is honestly beyond me. For Flash websites, sure, you have <video> now, but for everything else that Flash provided there has never been a proper replacement (at least until Godot/Unity started WASM'ing, but that was a long time after).