Submind YouTube summaries
Thumbnail for I Built One App for Video, Audio, Photos, Vector Art & 3D

I Built One App for Video, Audio, Photos, Vector Art & 3D

Watch on YouTube

Video summary

The presenter introduces Plasma Studio, a unified multimedia editing application designed to consolidate various creative tasks into a single interface. This all-in-one tool aims to replace the need for switching between specialized programs like Inkscape for vector graphics, Kdenlive for video, Audacity for audio, and Darktable for photo editing. Built upon a QML library called Lip Studio, the application leverages hardware acceleration to handle high-bit-depth workflows, such as 10-bit HEVC video editing, even on older integrated graphics cards. The core philosophy is to provide a consistent user experience where effects used in one media type, like color grading or blurring, can be seamlessly applied to others, eliminating the tedious process of exporting and re-importing files between different software suites. The application covers a wide range of functionalities through a node-based architecture that allows for complex scene graphs across video, audio, vector art, 3D, and photo editing. Video editing features include extensive color grading tools, scopes like waveforms and vectors, and support for FFmpeg codecs, while the vector module offers path editing, snapping, and animated textures similar to Inkscape but with added animation capabilities. Audio editing provides a waveform and spectrogram view with effects like compression and reverb, and photo editing supports RAW file demosaicing with high bit-depth precision. Although some features like live recording or advanced 3D modeling comparable to Blender are not yet fully implemented, the system is designed to be extensible, allowing users to build custom nodes or even compile QML projects into standalone applications. A significant portion of the presentation focuses on the user interface design and the underlying technology that makes such versatility possible. The presenter highlights a node graph view where every functionality is encapsulated in a specific node, ensuring that settings are always accessible and organized without overwhelming the user with hidden menus or scattered dialogs. This approach contrasts with traditional software where options for similar tasks are buried in different locations; instead, users can inspect the code directly via a dedicated tab to see how nodes work in real-time. However, this reliance on QML introduces security considerations regarding arbitrary code execution in project files and means that standard SVG formats cannot be natively opened or exported, as the application uses its own proprietary QML-based file structure to maintain feature parity. The video concludes by acknowledging that Plasma Studio is currently in an early alpha stage, meaning it contains bugs and incomplete features like missing transitions or live subtitle recording during streaming. Despite these limitations, the presenter emphasizes the project's open-source nature and invites community feedback to guide its development toward a more stable release. While the finished flat-pack version of the software is temporarily behind a paywall to support the developer's continued work, the source code remains accessible for those who wish to build or modify it themselves. The ultimate goal is to create a robust, flexible tool that simplifies creative workflows by allowing users to edit video, audio, images, and 3D elements within one cohesive environment without compromising on performance or capability.
Read the full video transcript
Hello everybody. I am extremely excited to announce Plasma Studio finally. Plasma Studio is a multimedia editing application which does let's see if I can remember each and every one of them. Vector graphics like Inkscape uh vector animations like Glux Animate, video editing like Kid Live, but also row image editing like Dark Table and streaming and recording like OBS. And I'm missing something. audio editing like Audacity and [music] there's one more 3D not exactly like Blender we'll get to that so all of these tasks can be done in the same application and even better there is hardware acceleration out of the box with high bit depth support and great performances even if you're editing as I do K row HVC 10 bit videos anything like that it just work So how does it work? Let's talk about that. Well, Plasma Studio really is two different components. The first one is called lip studio and it's a QML library that anybody can install and use to make application and it's a library that just allows you to do multimedia editing. There's a video object, there's a concatenate object, there's a group object, a clip one. Everything that you would need to do multimedia editing of any kind is within lip studio and that can be used in any application. And then there's the interface that so-called plasma studio which is simply an interface to edit QML and specifically this lip studio library. And there's many different way to edit the QML. There's a node graph view similarly to like the result if you use that. But there's also a normal what you see is what you get type of preview which you can just edit [music] uh similarly to Inkscape or the preview that you see in getting live with a timeline and everything. [music] We'll get to that. There's also a code tab so you can edit the code and see as you edit the code the changes happening live in a preview which is in my opinion awesome. Now to be clear plasma studio is built upon the great applications that we do have for this kind of tasks. I've already mentions application like Inkscape, Lux Animate, getting live and there's also very similar efforts that I'm very happy about from Graphine I think it's called. Great efforts [music] there. Throughout this video, I'll keep saying this feature works like this feature from that application because I copied it. Why break it if it works? The goal here is to have one single application that can deliver a workflow across the board in the same application with the same UI. And it's going to be so nice to be able to as an example color grade videos with the same very effects that I use to edit row images or to be able to do vector graphics within a video editing program that also feels and look like it's made to actually edit vector graphics [music] and vector animations too. everything. Or similarly, sometimes I have to edit some audio and I have to export it from Kitten Live, import it into Audacity, which has more tools, and then reimpport it back to Kitten [music] Live, all of this won't be necessary anymore. If this [music] application works, which is a bit if with this video, I am announcing a early alpha, which means that everything is broken. Yes, [music] I know you're going to try it out. You're going to see bugs. Why am I publishing this then? Well, I just want to get feedback. I want [music] to see what works, what doesn't, if there's any UI UX thing that isn't clear that I should change. I'm trying to just gather feedbacks and see what people think of this application. I'm interested. Let's see. So, let's go task by task to see [music] what Plasma Studio is currently capable of, which isn't a lot, but it's across the board, which is the cool thing. [music] Let's talk video editing. Uh, as I previously mentioned, we support anything that FFmpeg supports out of the box because we do use FFmpeg [music] behind the scenes obviously. And all effects are hardware accelerated, which means that even [music] on an integrated Intel graphics card from 4 years ago, which is what I use, you should be able to edit 6K 10 bit videos without any lag at 24 fps is what I've tried. probably should work even for higher FPS. [music] We already feature a good variety of color grading and graphical effects [music] nodes such as I'll just read the list RGB curves equalizers custom loots color space transfers larger radial and linear blur chromatic aberration vignetting and more. There's also a few scopes such as um histogram waveform vector scope RGB parade audio levels and a spectrogram. And by the way, all of these scopes are are hard accelerated too, which means that they update live as you see the video. And all of this applies to the full bit depth of of the image. And the very same nodes you can use for row image editing thanks to that intersection. [music] And even better in the preview of the video that you're editing, you can actually move things around as if you were in Inkscape because again you can also do vector graphics within the same application. Now in order to very quickly add files within the project, there's a sidebar which is called just files and which shows everything in your file system. If you click on a video, it will show a preview of the video with ability to drag and drop an area of that video that you're interested in or just use the [music] I and O keyboard shortcuts. And then you can add clip to the project to add just that part of the video directly in the timeline, which I think is pretty cool. And you can also use arrow keys to navigate within the preview or within files. You also get a project bin sidebar, which yes, it's been copied by Kitty Live because I love Kitty Live's project bin. And basically, it will show you all of the project files [music] in your project. And you can also filter to just see the project files that you haven't used so far. [music] Of course, you can just go ahead and drag and drop things into your timeline directly from the project bin, or you can drag and drop files to the project bin. [music] Now, you do get a timeline as well, obviously. However, currently it doesn't have that many features. You can, of course, move things around. You can resize them. There's also a spacer tool to move many things together. There's also a razor tool and a keyboard shortcut to cut the clips. And there is also ripple tool to resize things or move them in the project whilst also moving [music] things after that clip. If you know the ripple tool, you know what it does. I don't have to explain it to you. [music] You can also use a group or concatenate nodes to group together different clips as if it was a sequence from kitten live. And similarly, by double clicking it, you will be able to open it and edit things within [music] that group or concatenation. And you can insert the same group within a project multiple times just like sequences. Now, you might have noticed that I don't have tracks, which is probably a pretty big deal. Basically, I'm still wondering what's the correct way to do this tracks in this kind of UI. Maybe it makes sense to have a track node that you can link things to which is also exposed in the timeline. I don't know. I would really love if you tried out application and told me how you see track fitting this type of concept. Finally, there's a subtitle note that can add subtitles from a subtitle [music] file. obviously uh editing where things are and how they look. But there's also an auto subtitling feature. Now, it doesn't work on live video yet, as in like [music] OBS, while you're recording showing live subtitles. That is not a feature yet. I'm working on it. But we do try to make things as quickly as possible so that when you add auto subtitles, they start transcribing from what you're watching so that they appear immediately and then it goes back and back feels the rest of the video. [music] Is the goal here is to not make you wait for the entire project to be transcribed before showing you the subtitles which you probably want to start editing right [music] away. Let's talk about raw photo editing then. Well, Lip Studio offer a raw photo element which allows you to demo a certain raw photo. Although currently it doesn't expose [music] settings for the demosing process that um I'm working on it. You'll get them. And of [music] course, as soon as it's deosed, you're going to be able to edit it as if it was any other image to the highest bit depth possible, which is probably going to be 16 bit depth float. This means that effectively you can go ahead and edit the image [music] just like any other row image editor does and again using the very same effects that you can use to edit videos or to apply to vector graphics. That's pretty cool I think is it? Now we try to make color grading and editing a image as nice as possible. As an example, the exposure and ton equalizers have uh color pickers in order to change the colors of certain parts of the image. You probably know what I'm talking about if you do row image editing. And on top of that, of course, you have masks. And [music] in this application, you get any kind of mask, rectangular, circular, polygons, uh gradients, or even masks based on color ranges or luminance. And of course you can intersect, differentiate, union, [music] anything with these masks. And you can apply any sort of effect [music] to those masks. So it's as powerful as it gets. You can also, of course, feather them so that the edges blur out, let's say. Let's talk then. It's very hot in here. I think I'm starting to ah melt [music] away. Anyway, let's talk about vector graphics then. So, as far as vectors go, we have support for custom paths with a full path editor. Uh text with custom fonts, obviously, rectangles, circles, and [music] polygons. Of course, you can do any sort of path operation with this union intersection and so on. You can also apply outlines and you can also apply gradients which are their own specific nodes. However, we currently don't support gradient in outlines, which is going to be implemented soon, I promise. Now, similarly to Inkscape, you'll get rulers on the left and on the top. And if you drag and drop from them, you'll be able to set guidelines uh horizontally and vertically. [music] And on top of that, there is full snapping support, which is both to element center, edges, path um path nodes, everything. Now, in the back end, we also support toggling these snap things uh depending on the snap. But I'm still wondering whether it makes sense to expose all of those options or if it's just okay to simply allow toggling on and off snapping [music] entirely. Let me know what you think. We also offer a bunch of textures which can turn out useful. There's white noise, there's random noise, uh checkboard patterns, lots of that. And some of these are even animated, which means that you can set a speed and they change over time, which I think is pretty cool. There's also blend and opacity nodes, which means that you can pretty much do layers. We don't have a specific layer element, but you can group together a layer, double click on its name to change it to layer something, and then apply opacity and blend mode, and that's going to be a layer def facto. I'm not sure if it makes sense to just add a specific layer type [music] when you know you can just do it yourself [laughter] and it works just as well. And yes, there is a note tree sidebar that shows you all of the elements within your project [music] uh in a treel like manner. So you can just drag and drop things within and outside of groups and also just see what's going on, select things. It's [music] pretty cool. There's also some interesting options for layout. We offer um column row and grid layout which uh differently from Inkscape. Instead of just putting the things in a row as an example are actually going to make them stick to a row because it's going to become a row element. And if you double click it, you can drag and drag and drop things to change them within that row and they're going to always stay aligned. But if you don't need them to stick to a row, you can just ungroup them and they're gonna stay there. And so if you have to quickly organize something, you can do that as well. And of course, there's specific nodes to repeat stuff multiple times or scatter them randomly. Well, let's talk animations then. Every single property in every single node can be animated. There's a little icon next to it with a key frame. You press it and you can animate it. Uh it's pretty cool. You have a little graph with animation directly underneath the property, but you also get a dedicated key frames view that is a dope sheet if you know a little bit about animations and which are and which is going to show all of [music] the key frames of all of the elements color code. So you can also expand or collapse things. And [music] a collapsed animation is still going to show the curve because it's a dotted line and the length of the dots is proportional to the value of the element in that point of time which [music] uh it's hard to explain but when you see it you immediately go ah nice. This idea by the way is completely copied from graphin which I mentioned earlier. They showed that in their screenshot of their planned dope sheet and I thought that's a great idea. Open source baby. Let's take that. I I think you probably get at this point that I'm really not trying to like compete with them. I just want to show something new, a new approach. I don't know [music] if it's going to stick out, but I hope it is because I think it works pretty nicely. We do also offer the option to animate things in a path because there's a place on path node with a position a property that you can animate and so you can animate that as well. Audio editing. If you're trying to edit something that has no image but that has sound, you will get a Audacity like interface with all of the sounds. And again, [music] you can split them, you can move them around, you can join them back together, and you can also select certain parts and apply a variety of uh audio effects. [music] I think I have the list here. You've got volume, fit in and fit out, low and high pass filters, pass and tremble, filter, curve, AQ, compression, limiter, not gate, amplify, reverb, echo, pitch, and channel manipulation. It's a bunch of stuff that I don't really know because I don't do audio. So, I'm not the right person. But hey, if you do audio, you know what this stuff is. You have it. Even better, in that same view, there's a toggle to switch between the waveform and the spectrogram. [music] So, if you want to edit the spectrum, you get that as well. Now, what you don't get yet is the ability to record stuff live, which means that you can't press record microphone, which is a node, but that's not going to start a recording immediately. How that works is that you connect the record microphone node to the render audio node, and then [music] you can record it, but it doesn't happen live, which is something that I'm working on, and I would like to have soon. Recording and streaming. So, right now the streaming part is missing. I'm sorry about that. I probably misled you, but it's coming very soon. I promise. I just hadn't the time to get around that. However, we already can connect a webcam. We can connect screen capture. It's also possible to set up multiple scenes that you can switch between just with a combo box. Although that isn't very clearly shown in the UI. It's just an option that you get if you apply the scenes node. [music] And you can record or render stuff using both CPU or hardware acceleration. And again, you can build [music] pretty complex scene graphically because all of the stuff that I mentioned so far also apply to this mode. They're all the same thing. [music] You don't get uh transitions yet. There's no such thing. But again, [music] I'm working on it one step at a time. Do tell me what you think is absolutely needed and I'll go ahead and try to implement that 3D scenes. [music] To be clear, this is never going to get similar to Blender in terms of functionality. Nowhere close to it. What we're doing behind the scenes is to use the work that Cutie Quick 3D is doing and just exposing that in a nice way to the user, which means that it isn't perfect. Kit Kitquake 3D isn't Blender at all, [music] but you know, it's something you can place elements. You can modify them. You can turn a 2D element into a 3D one by a texture or by extruding. There's a bunch of features that you might be interested with, and it may still work to create some simple scenes, and over time, they can get more complex and more useful. Another cool part of this project is that it's really easy to add more functionalities to it because again everything behind the scenes is just a QML uh element with a little bit of documentation on how it works, what type of inputs does it have and what type of types it accepts. That's it. If you're able to write QML, you can just write a custom QML element, insert it there, and that's going to appear as a node and you can just use it. This means that A, it's going to be real easy to add more functionalities to Lip Studio and refer to Plasma Studio and B, it's going to be real easy to also allow for third-party plugins because it's just [music] a folder of Camel effects. Another interesting upside is that this means that your project files are just QML file and you can edit them with Kate or any text editor. You can read them. how it works is not very hidden. You can edit them not only in the project file but within plasma studio itself. Again, there's a code tab which shows the code for everything that you're seeing. [music] And even better, you can build something in Plasma Studio. Save it as a QML and embed that QML into an actual application that's going to work. Applications in KD land are KML, but also outside Kitty land. You don't have to be a Kitty developer to use QML. Now, this also brings a couple of major downsides. I have to be transparent about those. Firstly, this means that we are not using SVG as the project file [music] and this means that we cannot open SVG and we cannot export to SVG. And this is also because I really wanted everything to be together within the same application and SVG doesn't support half of the things that I'm implementing in lip studio. Now what we can try to do over time [music] is some sort of bridge between lip studio and SVG. It's going to be a subset of li lib studio and a subset of SVG because of course SVG implements stuff that we don't have and we implement a lot of stuff that SVG doesn't have but still it could be helpful for you know actually working because yes I do have to export SVGs to work secondly currently QML files allow for arbitrary code execution which is a major vulnerability now how that work right now is that basically you should treat project files for Plasma Studio as applications in the sense that they can run code. So every time you try to open a project file, Plasma Studio will warn you, hey, are you sure you want to open this? Because again, [music] this has to come from a trusted person or maybe you did a project because [music] it can run code. It can read your files. It can affect your system. Not easily, but it can. Now, I don't want that to be the case going forward. Obviously, one simple way to fix it would be to define that plasma studio projects are a subset of QML that doesn't allow for JavaScript code at all. That's probably the path for forward. However, I would still like to have some sort of ability to open uh QML projects with JavaScript in them because that's going to allow for interactive projects which I think is pretty cool. I would like in some months, maybe a year for Plasma Studio to also be able to [music] like video games because at the end, why not? You just have to go ahead and write the JavaScript code to make all of the QML elements interactive. After all, QML is a toolkit. It's made to be interactive. And then [music] it's going to be a QML file which you can compile just like any other application. And it's going to be an application that you can actually go ahead and distribute. You could also use it to do apps. Why not? It's not currently something we offer, but it's not particularly hard to implement that and it's definitely something that I have in mind. And by the way, if you're wondering why I'm looking there and not there, it's because I have my monitor, not my notes. I'm just checking that the image is coming through correctly. It's just a bad habit. I'm sorry about that. Now, I'm particularly proud of some UI and UX decisions that I've [music] made, such as making sure that this application can actually be used by somebody who isn't a super professional and is going to get overwhelmed if they open a project and see 15 different elements and a lot of options and everything is it done. I'll make an example. Uh if you want to change fill and stroke in Inkscape, that's within a sidebar. But then there's also document properties which is into its own popup. But then there's also like graphical effects which are separated between [music] filters and extensions. It's not clear which is which. And if you do that, they open a window that's going to tell you how to which is going to give you some options to change. And then you apply that. And you can't change recate the options even though they're just SVG filters behind the scenes. You should be able to do that. It it's not super clear all of the how all of this works, right? And similarly to Ken Live, yes, you know how to apply some effects and change some of its options, but if you then need to, I don't know, apply subtitles, [music] that's a all other settings page that you have to find. You have to download the models from there. >> [music] >> not super clear how and where to find every single thing. Which is why in Plasma Studio everything is a note. There's a list of nodes at the top and all of the functionalities that we offer are notes. You can just go through them. You can learn about them. And as an example, there's a canvas node with options on how to change the page color and background or whether to have like rulers. There's a export and render nodes that show all of all of the options to render stuff. There's a subtitles node which allows you to download the whisper models needed for transcription. [music] Everything that you would have to change is a setting within a node and you just have to know which node to use. But again, there's a list. You just get through them. There's documentation for them. There will be documentation for them. Still working on it. [music] And again, you can just switch to the node graph and see all of the nodes within your project and each node is going to have its settings behind it. Or within [music] the preview, there's a right sidebar that shows all of the settings for the nodes that you have clicked on. So, pretty easy, which means that for the future, in order to implement more features, it's just going to be a matter of, you know, adding more nodes and simplifying the settings and organization within them. the UI is not going to get super complex hopefully. Which brings us to Okay, what if you do want to try this out then? Great. [music] Thanks. I'm happy you asked. So, in the link of the video description, there's an article that says all of the things I've just said, but as an article, and at the end of it, there's a link to the repository. And there's also a way to download this as a flat pack if you just want the final product. Now, I have made the controversial decision to put the flat pack [music] behind a pay wall, which is just the subscribers to the my website or my Patreon. So, if you donate to my channel, thank you. You get that out of the box. And if you don't, maybe this is a good time to start so that I can [music] continue doing this because you know it takes time and I also have a job and it would be cool if I could get enough money to [music] have people helping me out to some extent. So I know this might be a controversial decision. It's still free as in [music] free software. You can just build it and try it out. But if you want just the finished product, I'm asking you for five bucks. You can just pay those and unsubscribe immediately thereafter and you get to keep the flatback link. Also, you can probably ask me privately and I'll just go h whatever. I'll give you the link because I'm weak. Which I think is everything. I'm really hoping that you're excited for this project. Uh I know I am. I'm really trying to do my best here. And [music] uh you know I would love if you tried it out. Tell me what works, what doesn't, and what should I know which direction should I go in. Just give me feedback. Do you like this project? Do you [music] like me? Are you proud of me? How do I stop this