This video demonstrates building a desktop application using Rust and GPUi, a UI framework that uses HTML-like semantics for creating native desktop interfaces. The developer discusses the challenges of state management in GUI frameworks, explaining that GPUi combines immediate mode and retained mode approaches, requiring developers to subscribe to state changes and notify the UI when updates occur. The session covers practical debugging techniques, including understanding how entities and contexts work in GPUi, and highlights the importance of proper state synchronization. The developer also compares GPUi with other Rust UI frameworks like EGUI, noting that GPUi offers more customization options while EGUI has better performance but is harder to customize.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Building Nativedoctor // Rust software developmentAdded:
bro.
Even if this [music] OG is too loud is louder than what it should be.
I'll just leave it here.
I think there's going to be another summary.
Okay, let's see if I can draw this out.
Thank I need to uh make sure my internet is good.
Be right back.
I'm trying to see if I can focus.
That's just another [ __ ] that [ __ ] This is crazy. I'm just trying to focus still something from here.
Oh, is there [music] someone?
Oh. Uh, yeah, it's it's a an API test and uh clients, you know, right now I just have this CLI ready. You could check it out on uh you can check it out on on GitHub.
There's a whole I think the GitHub link is in the description.
There's a hole on There's a whole read me, you know, about how to like actually like, you know, use it. And also, there's a web interface.
So, it's probably like test out on the web. Though, most of this is like, you know, under active development. So, it's probably going to take a while before it's usable.
Right now, if you're a developer, you can actually just use it and you'll be fine. for for a regular user.
I mean, who else is going to use this besides developers here?
But for a regular user, you know, for a non what am I saying? If you are not the kind of person that tinkers with, you know, other stuff, so you might not really be able to use this that much. So uh for end users which is like the developers um you know it might be hard to use for now. So it's just think of like Postman Postman. Yeah. But there like lots of cool features and you know those things I would outline maybe on a document or something. This is supposed to work. I basically what I want is I want the window to come to the front. I don't think I'm getting it right.
What does this return for the subscription?
This is what I need to do. It's window check.
What I did this morning before [laughter] Yeah, that's enough. Oh my god. I No, I understand what you're saying. I understand what you're saying.
Took me a while, but I get it. I get I didn't fall for that one.
Let's check out to bring the windows to the front. I did it somewhere before or I think I did some other projects BM.
Yeah, I did something like that. Yeah.
Is this okay? I think this is us. Okay, let's have to do sale.
But I think GPUi changed a lot of things since the last time.
So I don't know if this going to work, but let me try.
There should be someone here.
Got it. So when we run this now we should see the window at the front. Okay. I think what I was trying to do was activate the window but I should have activated the um the application instead. So I should sit at the front of Okay.
[laughter] Oh yeah, Chirro.
Uh, I'm just guessing advice on your side.
Okay, cool beginner projects.
Honestly, I I don't really know.
I mean, I wish I knew, but I don't really know because uh I've also been on ROS for a long time now.
But if if we're talking about, you know, just really chill beginner projects, um, let's say, I would say it's probably going to be something centered around building and FTP server.
Oh my. Yeah, because it's it's it's actually nice. It's a nice thing to actually start doing. You know, you could just build something around networking or um maybe like string manipulation, uh simple game, not GI game.
Uh but if you're looking for resources, I think the ROS book is a nice place to start. So, you can just check out the Rust book.
I I don't have a link on me right now, but yeah. And what what you could do what you could do is um you could just ask uh maybe like Gemini or or charge a bit for nice product idea. Maybe that's a bad idea because once you start going that route, uh you just ask the do everything for you.
I used to have a let's see I used to have a list of of things that I want to do like ideas around networking uh rust systems.
So yeah.
Okay. Okay, so now we have our window on the on the front or application rather.
That's what I just wanted to do. And yes, it's been a while since I touched this. I know I'm looking for a lot of things, but I've not written GPU in a long time. So, just comment this Okay. Now the UI that's it all templates number.
So we have a a ter I just copied and pasted this code from uh GPI components.
I'll be right back.
Okay.
Yeah, generative AI can be very uh can actually like bring it down in a lot of ways. I mean, it's cool, but anyways, I I I think I'm going to write an article on my take on AI. I'm very mixed because I use AI, too. But, you know, you just have to draw the line somewhere.
So I'm using GPUi components. Um oh ROS and ecosystem for UI bro like it's crazy because there is not one mature UI framework for ROS. any mature one looking at it. Are they looking at Yeah, they're looking at a um Yeah, they're looking at a web tech a web technology like you know rapper probably like uh to or diiois they kind of just wrap a browser. I I don't want a browser. Like I I know that you could you could do it and still have a very small binary and still have everything written and Rust, but I don't want a browser. Like why why why do I have to do it on the browser?
I don't know. Obviously there are lots of performance uh cost when it comes to you know doing everything on browser but most people just tend to ignore it.
Okay. So, yeah, like I said, I copied uh I copied this code directly from here.
So, it's the same thing for managing my uh if you take a look at the same folder, you see I have uh some values for my colors.
Yeah, I want like an actual native GUI.
All this was gened by AI by the way. I didn't, you know, have to start doing the colors. I just had a color palette and ask it to use the schema to create this file.
Okay. Uh so we have our background then text color.
this guy text for ground. So now start adding the children.
We need the sidebar in the main file.
Actually I think this should be resizable ping but let's just ignore that for now.
Oh, by the way, uh GPU is not HTML framework or anything.
Uh it just uses HTML and um tailwind semantics. So this just looks like what we have in HTML just because you know everybody's already familiar with HTML and uh the node tree but everything you do here is uh you know just presented by the GPU that's going to GPU I don't have a UI in mind.
I'm just writing blind.
I mean obviously I want to make it a little bit similar to this but most of what we have here is going to change. [music] So let's see image.
So this is going to change something like this. Basically we need a sidebar and now a list [music] of whatever we have here.
We're going to steal the UI from dribble.
I'm sure I have some uh expression for the Yeah. [music] That was the best so far by Freaky Studio. I don't know if it's freaky or I'm pronouncing it wrong, but they actually have this nice looking UI. And at least for the sidebar, this is basically all we need.
Actually, this is this is all we need.
So, uh let's uh let's see.
Okay. Okay. Let's get it done. This this UI this part the sidebar is what wants to try to implement. So everything from here down.
Let's get it done.
I done this. Let me save this expression.
Okay.
Let's give something random for now.
What else?
words.
This guy This is fine.
What else?
Let's do a column.
Let's see.
There we go.
idea. We need to start this uh the states somewhere of the sidebar.
Let's see the ducks when the states states. So just for the states Yeah, there's an NC states.
Done.
Bro, I swear.
I hate st management for a s that I can't avoid here.
I think anytime I'm dealing with states, there is one thing that comes to my head and I think we can find this.
Oh, native is an API testing client. You can check it out in the get uh link in the comments. So there's a CLI under GUI for that right now.
So I'm trying to build a desktop application.
I think it was this guy, the guy that made uh I forgotten the UR. Oh yeah, Jafar, how you doing? Yeah, I remember I was getting to commit, you know, at least three times a week. So, I decided to jump on stream.
I forgot the name of this UI client. Let me check from Agi.
Agi, it's an immediate mode GUI framework. I am GIM imgi.
Let me see if I can get it. So this guy it's obviously immediate mode. You don't really need to manage states.
I mean obviously you still manage states in some but not the same way as you you react immediately to the states. So the guy said something. Yeah. Discord I can click it and get to the actually posted on on X or Twitter.
Forgive me for saying X. Oh Lord.
But anyways, the guy dropped this and he said give someone states and they'll have a bug one day, but teach them how to represent states in two separate locations that have to be kept in sync and they have bugs all that time.
So basically in this mode GUI just like you know you have your variable you react to the variable immediately maybe I'm like explaining it poorly but kind of get what I mean like this test management that we're doing here.
So G is like a mixture of immediate mode and uh mode is it graphic mode? Oh retain mode. Yeah, it's a mixture of retain them and get more GUI.
So, what was I doing? Oh, I was trying to add the imprints.
Okay, let's see.
Okay, I think I need to add it here.
Drop my special We could just put it that way.
I hope so.
Am I committing a blunder right now?
Okay, I think I am.
Oh, okay.
Thanks, Lord.
Yeah, Lord.
I hope not.
Aha. Nice. I have to pass this. This not yet.
Okay. So, uh, which one does this?
Yeah, we have an imp.
It's not working yet. I wonder what we have to do to make it work.
I really wonder.
and make a reference to my other projects.
Yeah. So, we're doing JPY now. I've been jumping from one state to another.
Yeah, [clears throat] we should consider the native doctor.
Nice one. Nice one.
This looks good.
Looks good.
And that's basically it.
Okay.
Session roll is already exposed.
Yep.
Oh, it's in the render.
It's not what I was looking for.
Okay. something once basically nothing. So, oh [ __ ] I mean, this should cooperate with us somehow.
But it's not really getting my keyboard yet.
I'm going crazy. I'm not going to lie.
I mean, I've not started doing CR yet, but I could be wrong.
Let's go back to check on this.
Detach public.
Interesting.
Oh yeah.
Let's set them for not sure [music] what has states.
Let's see here.
I wonder why it's not taking people nutrients. Oh, it's Let's get some close to something.
I set a placeholder. [music] I can't set a placeholder or I can.
So the part for today is to actually build the UI [music] in JPY.
Uh, since I worked on [ __ ] show since I worked on this [ __ ] I uh, let me see.
Yeah, I was actually comfortable.
Uh yeah, the the native vector still has the I don't think I'm taking that out.
Uh I might I might make like some changes, but it's still going to have the HTML basically for sharing documentation blah blah blah. But I kind like still need the desktop, you know.
You can check this out though. uh [ __ ] It's right there uh on my just past it on the chats.
Oh, I can paste. Oh, I can paste. Okay, cool.
Okay, here. So, yeah, I'm just trying to build the UI. That's all right now. It's It's against me.
Uh, search resources.
Okay. So, Oh yeah, and this is my reference. Uh, this is my reference. Not the whole app here, the sidebar. Just the side bar, the, you know, the sidebar. So that's just my reference cuz I don't have a UI. I didn't design anything, you know. Let's see.
Okay. Yeah. So, I'm trying to figure out why it's not typing.
Oh. Oh. Okay. Okay. Okay. Okay. Okay. I think on every change we still have to notify that we've updated like notify the content. So that should be like we redraw. [music] I forgot that was a thing. You know, like I said, GP is a mixture of retained and in game mode. So yeah.
Oh yeah. Yeah. Oh, look at me. I forgot.
Can you believe I can't I could not I didn't remember. I actually had one here. I haven't had the file saved.
Let me see.
Wow. I can't believe I didn't remember that.
Let's see.
Uh, plans documents.
Oh, I don't even think I have it anymore.
Okay.
Aha.
[laughter] Oh my god, my my my brain.
Thanks so much, Jafar. Like, I just forgot that I had a reference.
I just forgot.
Oh, yeah. This better like [clears throat] Yeah. So, we have the Okay. Okay. Okay. I actually have to make a few adjustments to this because you know after working on the the uh the front end let me see if I can let's see web so this is the web uh version of mtor If I place it here, this is just the web version. There's currently none. Yeah. No.
Uh so I can open an actual project.
So I I think I showed this in the previous stream.
So we can see this we have three files.
One is a request file. We have request two and then we have the scripts. The script is like the main features like the flow. You can define, you know, some kind of like flow of how you want your API to be called called.
Maybe like a a user login flow or blah blah blah. You know, you just want to see the call steps in between your API calls. You just want to see like how or if everything works out like it should.
So, if we actually do run the scripts, we get this nice timeline, which honestly at the time I didn't think I could do this with GPUi, but right now I don't think I can, but you know, I just want to like, you know, try. I'm sure GPI can can handle it. And if it can, I probably could.
So, yeah, this is it. Uh, this is the um this is the web version.
for now. So that's what we can cook with Jer.
This was like the end.
Take a look at this project. Yak. This is another one written with uh this one. This another one written with uh what's the name?
Okay, this another one written with uh Rust, but it's a it's a web page. And how do I know it's a web page? Can't see.
Like why?
But anyways, it works. It's a good project and it's it's for sale. I I think it's a it has a paid version.
So, well, no more HTML rendering at least on the desktop.
So, yeah, that's that's something.
I think what we need to have is the search bar.
Just in the search bar, why is it so big?
I don't know if I can put all my work here.
>> Oh, wow.
Oh, I just can.
That's crazy.
By the way, you you should check out those guys. They're really cool. I watched their keynotes. I mean this this completes.
[music] That's what she said.
You and uh Daniel has a chance. You guys are a good pair.
Uh I never knew I could do this, bro.
Maybe some other time.
All right. um search bar. This this what that's what we need here. And then we have the rest of uh the interest.
It's going to be like this group of collections. It's going to be Yeah.
All right, let's get back to the code.
All right, we need to notify when there's an update.
And how do we do that?
Subscribe to the states. Okay. Okay.
Cool. Cool. Cool. So, I have to do here.
That's okay. So, if I want to subscribe to the state, we do CX subscribe.
Okay. Subscribe to the search state entity to a reference.
Yeah, reference is fine and the events.
Okay. Okay. Cool. Cool.
So this which is this entity or this instance context we'll get the entity itself then the event okay event. All right then the context.
Oh, that's cool.
All right. All right.
Okay. Matches on to verify that the events we do. Let's uh change start something.
I have to detach this by the way.
Okay, there's nothing there.
All right, let's try this again.
Ah, this check first.
All right.
[laughter] Holy [ __ ] I said the subscription is working in the first place.
Okay. It's not working.
It's not working.
Let's see if we're missing something.
Probably not.
You know, if if you were if you were doing this on HTML CSS, you know, you just have your your imputes there. You connect to like a variable or something and then you're good to go.
That's why everybody loves HTML.
I love HTML. So sad.
But for desktop honest, it doesn't just feel like the right tool for the job, high memory consumption just because of you are, you know, if you're going to use an HTML uh library or HTML UI for your desktop app, you're probably going to have to use like a UI framework. Now, this overhead just keeps piling up and your platform just feels like a server.
Maybe I don't know what I'm saying.
Okay. What do we do with the subscription?
Oh, we just subscribe.
We didn't touch it.
Okay, that's crazy.
Okay.
Okay, this is crazy.
We just had a day in the entities context.
Search sub.
I'm going to be a dead coach. That's Just checking [music] this out.
Oh, touch it.
All right. So, let's see.
I mean, what am I doing here?
Still not working. Good.
I look like I know what's going on, but good. It's better that doesn't really work there.
But isn't it crazy that this is all we do here?
Subscribe.
Get the name states.
Well, we did touching this public session.
Oh, okay. That was the wrong place.
Yeah, they it's it's the design of the framework. It's GPUi.
Honestly, I'm still trying to like understand the flow. Uh the access are actually easy to pick up, but GPI it seems like a whole new thing on its own.
Aside from the fact that they made uh actually doing the UI a little bit familiar, everything else seems so strange.
I remember what I did with this.
I didn't even do much.
Okay, I'm just a mess.
Like I thought we're supposed to handle this sub subscription.
What do we do with this?
Oh really rust they using rel rust or some other language.
I tried to do really rust in one stream.
It was easy to pick up like to use the actual really but I think rel is actually a very nice framework or library.
some navigation just a little bit.
Oh, this is what we are building.
I've been working on this last year, by the way.
Oh my god, I feel so ashamed.
Oh, you know, one of those things where it's one of those things where, you know, you're working on something, but then you have other things that you're dealing with. So, you can't just like fully focus on one thing for a long time. Like working on those things.
I have been you also working with work like my actual job. So it's not been easy like coming back here.
So yeah I would see that's cool. That's cool. It's been ages since I would see.
Yeah. Ages.
Yeah. We got to touch this somewhere.
I might I might have to consult the gods for this one.
Why is it dead code?
What's the design reference here?
Oh my.
Okay, it's dying.
Oh my I actually meant this documentation.
I meant this documentation. By the way, I have a I did a um Deep Six subscription few days back. I don't know if I could show It's crazy. Hold on one minute. Maybe do a quick show. It's It's crazy. I've been using this for a while. Just take a look at this.
That's uh okay this was 59 million tokens on the V4 Pro and the 30 million like 30 million tokens on the uh V4 flash. So that's in total that'll be around 80 89 million give or take 89 million tokens for $18.
It's crazy. Pretty crazy. You probably should give it a try. Uh, Claude might be uh Opus 4.7 might be more intelligent, but it's not worth it.
I mean, spending $200 on on Claude really.
I am going crazy here because I'm I'm sure I'm not tripping.
Hey, at least when China takes over, they know I'm there.
Uh, I'm one of them.
I really don't mind giving my data to the Chinese to be honest.
Uh, should I mind? I mean, I probably should.
I just have to trust that they're not doing anything crazy with it, which is which is stupid by the way, but I mean it's cheap, you know. It's cheaper than $200 per month.
And I really don't want to have to rely on the intelligence of those those models. I mean, they make your work faster. Yes. for work that I don't actually like care about. I use uh AI a lot like at my workplace. Like obviously it's not my work. I just have to make sure that everything works fine. I have to just make sure that I audit everything. But what the company cares about is get it done fast. So I just use AI, you know, write the whole code, make sure the whole code is fine, at least what I have in my mental like my mental model and make sure everything is okay.
you know, but when it comes to projects that I when it comes to play that I care about, I I've actually tried like there is this project I'm working on, Kyoshi. I actually tried to just oneshot it with Cloud uh Opus 4.7 and you know, it's it generated a code.
The code was nice. No, the code was not nice, but at least it worked.
But then I didn't know where to go from there. Like like I don't know how to explain it like it did the whole thing.
I mean you just continue asking change but it's a product that I have I have I want to work on something. Yeah. I have a flow of how it should work but then AI just like does it own thing which might be nice but at that point it's not really my own. it's not my idea anymore because all the ideas I have for that project it's not in the source code. So if I was going to use AI for my personal work, like let's say I want to write a function that's probably going to take me a long time to write or want to debug something that's like really making me go crazy just oh what could be wrong here or uh write this function you know very small units of the whole thing that I can easily manage and still make it work according to what I like you know need but the whole thing it's guys, it works. But oh, bro, trust me, I tried.
I just ended up this in the project like the code that I wrote started really from the beginning.
You know, we could finish this stream and I haven't figured this stuff out, but it's very possible.
Yeah, it's like like I kid you not.
That's exactly what it is.
Oh. Oh. Oh, no. No way. No way.
Uh-huh. Uhhuh.
Uhhuh.
Definitely know what I needed.
That's crazy. The in the whole code, we didn't do anything with it. We just created it. Not we didn't even like detach or anything right here.
Or did they make some changes because I'm on like some kind of early version.
I don't I don't know what's going on.
See me thinking the UI was going to be easy.
You know what? Let me look into some online resource.
Okay, this is interesting. That's the way it says here.
Wait, I have this. I have this. There's no way I don't have that.
Yeah, I do. It's right here.
I think I'm missing something. Uh I think I'm missing something.
That's just it.
building.
I think I'm forgetting some [music] questions.
Let's take a look at this guy's code.
So, I think that's the input state here.
Uh, what else? Okay, there's a f I don't have a focus handle. You have to implement a focus handle.
Oh yeah, I think I do because the text has to be in focus. But it didn't say that in the say that in the uh in the dark here.
There's no f focus, but let's try that.
Let's see if it works.
Uh so focus handle. Uh cover that.
Uh let's see what else. Um, active text states.
What does this do?
I think we're just getting the text or something.
Text inputs from where? I think there's an old code.
the difference in detached here. You'll see That's Chris. Let me see. Six.
Oh boy.
So this subscription here too does solve this issue.
I don't know the golds for real.
Okay, you know what? Let's call the guns.
Where's the stage on my changes? Does it make sense?
Okay, good.
I think I should get some water. Right back.
Oh, look at me. Look at me. I didn't even give any ah [ __ ] I didn't even give any context.
I didn't even give any context as to what I was talking about.
[clears throat] Yeah, I put on the bra.
Uh, all right. Let me let me set it up while I drink some water.
>> [music] [music] >> So, we just dedicated our brain to to dupick [laughter] while they handle the whole thing.
So, I don't know if you can see my screen. You can see the little fella is, you know, he's going through it. It's been going through it for a while now and I'm sure it's as surprised as I am.
But in the meantime, I'll be going through the docks to see what's up.
I'm sure there's nothing here. I mean, if take a look at the take look at the other projects, it works fine. I mean, it's it's an older um it's an older um version, but I mean the changes should have not been that crazy. Yeah.
Oh [ __ ] Oh yeah. Okay. Let me show where it works.
See, it works here. You see this is a presets um this is a preset screen right here.
The preset editor. That was fine.
And all I had to do was this is the session row. This is the main guy here. The preset editor screen.
This is for all navigation events.
Blah blah. Okay, we have this blah. We have the render blah. Let's take a look at the render.
What we do here is we Okay. Right.
title bar. Okay.
Then the body here this uh of the body.
Yeah, it's right here. So, we take a look at this. We see um this is where we use the imputes.
So, we use impute. Just pass the imputes that way. Then, let's pass the impute states. You know, really straightforward. I wonder why it's not working anymore.
pretty straightforward.
Let me just subscribe to No idea why we don't detach any of this though to be honest. Can't remember why.
Well, yeah. Let's see what's up here.
Let's see what the Oracle says.
Ah, the Oracle is still going through it.
By the way, uh, dipstick is very cheap, at least for now. I I think there's a I think there's a um I think there's a um 75% discount till the end of the month. So that's why it's still cheap. But regardless, it should still be cheaper than than uh what's the it should be cheaper than um you know, I mean this I think the dress you would really see it when you start using it compar like compared to um this guy compared to um Claude, you you see the there's a really really big difference in intelligence.
I don't know if it's just intelligence or something else, but CL is really good. But I think I'm good with this because it it's cheap. I keep pointing out that that part is cheap, but then it's really like I mean you get what you actually need. You don't need to ask it to spawn the whole thing.
Honestly, AI is still at it though. Like it's not done yet. It's not hasn't found the issue.
Still pointing out that we need to use a focus handle.
Oh, in the meantime, in the meantime, let's see if we can continue with the rest of the UI.
We have collections collection.
Um, I got a feeling. All right.
Okay, let's give it a cut. [music] Padd all around pattern.
You have to build every time you want to see your UI. By the way, it's another disadvantage from, you know, HTML. Well, what to do?
We have sources. Let's put a a line just like this.
Or we could make it such that there is no pattern here.
But we have a pattern in the search bar.
Then this has in the the border at the bottom.
B X one color uh let's and it says Oh, okay.
All right. See something like this.
I have the election in the bottom.
What's inside?
I think this top just something like this.
I like what I did here, actually.
But this was like nights of work where I was actually like really really really invested in planning which I should still be you know the uh this here is the I should have should I name it collection? The reason I don't collect collection because yeah, I think I still need to sit down to plan this.
I don't know before I hold on.
What do you mean by plumbing?
I mean, uh, passing things around.
I think at the end of the day it still boils down to the point to the fact that if you want to build UIs in Rust and it's not HTML you just have to be ready because the code is going to be variable going to be like a lot but I I think that that's kind of what I want you know I want to get strong in the language so yeah honestly Facebook is still going through it. Like it's still thinking like what could be wrong.
I don't think it's going to find out.
But if it doesn't, so I'll figure it out some more time. Well, at least we're here to build the the UI. So, let's just keep on building.
uh no it's it's I think it's an old framework this Z editor this app I'm using to write my code is written in GPU so zed they created it for because back then there was no good you know ROS didn't really have any even till now Ross still doesn't have a mature UI framework but back then they realized that fact and then they set out to build their own so that's what GPU is a GPU GPUi RS so it's they just created themselves well just so they could build this text editor So this Z tested written in GPU everything here that you see on the screen right now GPU.
So of sides.
is that it's the only UI framework that I've seen so far that actually looks matured. So there is DPUI and there is EGUI.
Uh let me show that in a minute. EG UI.
So EGUI is an immediate mode GB uh uh UI library. Yeah. And it's actually nice. you could do really cool things with it. Uh let's take a look at an example. Rerun.
Uh if we take a look at rerun, I'm speaking on um ag right now. So I'm just trying to figure that out. I've actually considered a few UI libraries in Rust and I decided to settle for GPUi. And I'll tell you why I settle for GPUi.
So rerun is it's just like Zed and rerun it's kind of like the same they kind like had the same story in a way. Zed wanted to build a text editor in Rust but they didn't find any mature UI framework for ROS. So they created GPUi.
Rerun wanted to create a uh I think it's some kind of uh it's a what some kind of like physics rendering engine.
I think they can't run simulations. I don't know why it's not loading here.
They needed something to get that done for them but they couldn't.
So they had to build EGUI.
H I wonder why Safari is taking ages to open this. So if we try this in browser, you can see that AUI2 is actually like capable of building a very nice UI uh long uh frame um application. But then the issue with GPUi is if you know you already have ROS to battle with.
Yeah, you have ROS to fight with when it comes to building the UI.
You're fighting with Rust and now you have to fight with uh now you have to fight with the framework for building the UI. AGUI is not really customizable. If you take a look at um GPUi, you could customize anything. It kind of like gives you the HTML control in a way for building the UI. It's just the UIs. Yeah. Kind of gives you that control. Uh even if it's still hard in some ways like managing states and all like the issue we are facing now.
Well, I that's a skill issue, but we'll get there. EGUI, it's it's very hard to customize.
It's capable, but it's hard to customize. But that was not even my biggest issue with EGUI. My biggest issue with EGI was layouts. Layouts in AGUI.
Oh my god, my camera just turned off.
[ __ ] Okay, so I'm using a uh a Canon EOS R8, my camera, and it turns out while you're streaming, the battery doesn't get charged.
I actually had like I thought while you're streaming the battery is also charging, but it turns out that's not the case. So, the battery the battery lasted uh uh only around 2 hours and now I have to charge it again. So, what I have to do is buy a dummy battery if I actually want to stream.
But let's forget about the battery for now. Let let me pick up my my avatar.
I'll be right back.
All right.
>> All right.
Okay, I have to bring this guy back.
[laughter] Yeah, it's been a while. Well, he's uh he's back now.
So, what was I saying? Uh well, yeah. So, the camera doesn't charge while it's streaming. So, that's uh I have to get a dummy battery. So, yeah. Let me go back to what I was saying about EGI. It's very hard to use uh to customize and the um the layout is terrible. Like the layout is is terrible. Like that was my first turn off.
So um so yeah, that's why I fell back to GPUi.
There are other libraries like ice rs.
say ice.
Is it ice or ice? I can't remember. But this is very very far away from a I've not really gone too deep into ice, but it's kind of like very far from what a native application should look like.
in a way. I mean you you can if you have the time and you have the energy, you can actually like you know dedicate yourself to building this uh what was name and just dedicate your time and effort to building the native looking UI blah blah. But I I don't have the power for all that. I wanted something that looked uh should I say, you know, good from the start. So I don't have to worry too much about the UI and the layout. So that's why I fell back to GPUi. Oh, GPUi. Oh, the layout is primitive. Not not that it's even hard to use. It's primitive.
I mean, they they managed to make this work here for them.
Uh the cool thing is that you could use the WebGL WebGL WGPU L WGPU context. That's the WebGPU uh context. Yeah. Kind of like provides like gives you the ability to do things like this like render 3D.
You know, you have to write the the compute shaders by the way. Um, but when it comes to like handling layouts and customizing the UI, it was just and it was terrible. Like I even wonder how they were able to achieve this because I tried something similar in uh I tried something similar when I was working on my project my other project but didn't really work fine. So come back to GPUi. So now GPI still gave me some issues.
Uh lots of issues by the way which is number one this issue that we're having right now. Wow dip dipstick is still at is like he still doesn't know what's wrong.
Anyways, yeah, I fell back to GPU um to GPI because I mean you can see here that this is something that's possible like just take a look at what they able to achieve here with Zed and then you kind like just make you know that oh you know I can actually do the same with my own project.
So yeah, that's why I'm using the VI and also it's really close to HTML. The layout is also very close to HTML and clear wind. So yeah, that's that's pretty sure.
Okay, so the side items.
Yeah, I think the M is just going about and about. So let's just burn a few more dollars and just see how Yeah.
How well it's going to go.
Oh, yeah. I think it's capped at 1 million. tokens. Am I being general gen general right now? Oh, you know what? I think it's 800,000 tokens. And right now, we're at 94,000.
That's 4K. So, as long as you have the money to burn, which is not really a lot, 0.5 uh 0, that's like 51 cents, then you're good to go.
Oh, what is the stamp?
I meant item.
We'll just use a me for now.
I know we can render list with let's see there should be a component for render this here.
Yeah, this guy.
So, we'll probably go with this, but let's just get a UI done.
That This is strang.
I think we just did a straightforward here.
Wait.
This guy writing my code.
Oh my. What is it doing?
Oh, okay. Okay.
Oh, wow.
Okay, this makes sense. It's kind of like similar to what this guy had this guy here. That's if I'm right.
Yeah, it's kind of similar to what this guy had here where he was reinitializing this the see here on every call. Well, mine was like I'm creating the entity on every call.
So, let's see if that fixed it.
That'll be wild though. That'll be wild.
I think if it works, I'll I'll give to the secret flowers. Holy [ __ ] [ __ ] Holy [ __ ] [ __ ] bro. [laughter] Bro, it [ __ ] worked.
It [ __ ] worked. This was the issue here. This was the issue here. This This This was the fix.
I don't know if you guys could see this, but damn.
This was the fix right here. I was building the uh Okay. Okay.
Wait, this looks similar to what I had before.
That was crazy.
That was crazy. That was impressive.
Yeah. Like it really like took its time.
Checked uh the It's crazy. It's crazy.
Like that was crazy. That was really cool.
That was really cool.
That was really cool.
So, this right here was the issue.
I was reviewing this in the uh with a different context, but now what I do is like what it did was pass this here. So that works space created with the parents context and linger.
Okay. Okay. Okay. That was pretty that was impressive. That was impressive.
Really really impressive.
All right.
Okay. Cool. Cool. Cool.
Oh, all right.
Oh, but I noticed something. My my lister Okay, I feel so good now. Feel so good.
Okay, where are we?
Uh, it I think it kind of like took my this my code backwards.
>> Okay.
dance.
So, I kind of want to put the the kind of want to put the um the status before the name, so to speak.
items here probably just say so this we still do that let's let's go Um yeah, this can get very overwhelming though functions here.
There's a rock that's in a Oh no, wrong dead.
Oh, yeah. Something like this.
All right, man. Thanks a lot for All right.
I mean for now I mean we it's kind of like set us basic most of the thing I wanted to do I think in time But you know what? This I don't know if I should jump off the stream now or just keep on going because even if I jump off the stream, I'm still going to keep on working on this. Well, maybe at a faster rate, like probably faster. So, but for now, we just keep on going.
Oh, that's Japanese. Yeah, that's Japanese.
All right, man. See you later. Thanks so much for joining.
I really appreciate for real.
Nice.
I think something was Get there.
We'll get there. We'll get there.
I should take this back. [music] I'm just deforest.
There's a tip of sticks here. I'm think I think this is a I think this is it on the floor or looks like I don't think this is correct.
Why is 15 seconds.
I got this to five.
All right. Uh guys, I have to go.
Uh I have to attend to work. So I'll be right back. Maybe I can email tomorrow.
But before then, I should be done with some things, you know. So uh thanks so much for joining. I really appreciate, you know. Uh hope to see you guys on the next stream. Bye.
Related Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 views•2026-05-28
How agent o11y differs from traditional o11y — Phil Hetzel, Braintrust
aiDotEngineer
450 views•2026-05-28
Re: 🗣️📍theprophedu📍2026 GST 103 CLASS (E-EXAM REVISION)
theprophedu
636 views•2026-06-04
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation💯✅
LearnwithSahera
1K views•2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 views•2026-05-29
Search Algorithms Explained in 60 Seconds! 🤖💨
samarthtuliofficial
218 views•2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 views•2026-05-30
Instagram accounts got PWNed
EricParker
13K views•2026-06-03











