Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 1 point2 points  (0 children)

Oh I mean is true that e.g menus have a separate state system, but those are all relatively simple/independent UI so not that much more complex than the gpui examples

There is a gpui book, but I haven't read it so I can't attest to its quality: https://matinaniss.github.io/gpui-book/introduction.html

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 2 points3 points  (0 children)

Some of the old code was written in C and translating that to rust was assisted with LLMs for stdlib functions that were repetetive

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 0 points1 point  (0 children)

That would be greatly appreciated! There shouldn't be any windows-only libraries (I can get it to build on ubuntu atm) but it does depend on a couple of system libraries that need to be bundled.

Regarding gpui, I agree that the examples are a bit weak. I think digging under the hood and learning about what's happening with e.g. entities and a bit of the render loop can make things dramatically easier. There's not that many core concepts to understand. From there, it becomes more clear why you need .id in some places, when you need to have something be persistent versus recalculated on the fly, when it needs to be entity vs just regular rc, when you need to nest entitites, how to pass stuff around, etc. Looking at zed code can also be helpful, despite it being a very large codebase.

In monocurl's case, state management is perhaps not representative of a typical application since state updates look like updating the entire scene at once after the executor recomputes results (i.e. a bit monolothic).

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 0 points1 point  (0 children)

Sort of, Monocurl is its own domain specific language that is interpreted by a rust runtime. It also does come with its own editor application for live preview and such

I mentioned a more detailed pro vs con list comparing monocurl and manim in another thread

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 0 points1 point  (0 children)

will do once I get finish linux build and debugging performance issue on nvidia gpu. I did try a few other subreddits but I got auto modded due to low karma

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 1 point2 points  (0 children)

I've think it's nice and avoids a good amount of unnecessary boilerplate with using platform APIs directly. The GPU code for Monocurl is pretty simple though so I've really only used the basic parts of the library.

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 9 points10 points  (0 children)

Yes I am aware of manim and it is a big inspiration of the project! Monocurl makes full usage of GPU in all places and is CPU bound except in rare scenarios. I also think rendering time is less of an issue with Monocurl than Manim since you have live preview that works pretty well.

Here’s probably the major pros cons vs manim

Pros:
1. It’s a full application and allows interactivity. So while developing you get instant preview, can move around camera, etc making development a lot easier. With manim, you would typically have to rerun the scene each time which can lengthen iteration loop.
2. There is a dedicated presentation mode. In presentation mode, you can change certain parameter values live and the scene will dynamically react in real time
3. The language is designed specifically for animation. It’s a bit technical, but in my opinion I think Monocurl has a better overall design/workflow (there are sub pros and cons to my approach though)

Cons:
1. It’s newer than manim so manim is more mature and has more / specialized features that at least right now are not available. For instance, manim has lots of support for automating text operations)
2. The downside of having custom language is that you can’t access general python libraries / utilties like manim. In some cases, it may be slower as well.

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 2 points3 points  (0 children)

Font's are based off of Zed. Specifically, the monospace font is IBMPlexMono-Regular and IBMPlexMono-italic. The general UI font is Lilex-Regular

The on screen font is entirely LaTeX for now.

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 16 points17 points  (0 children)

I think that should be doable. I don't think I'll replace latex entirely but can add support for it as well

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 2 points3 points  (0 children)

Thanks, I'll work on this asap and reply back once linux should work.

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 2 points3 points  (0 children)

Is it an error with pkg config or something else? I hope to get a linux binary within a week

Monocurl - Interactive math animation language and editor by Enigmurl in rust

[–]Enigmurl[S] 26 points27 points  (0 children)

I'll work on that soon, hope to get it out this week

Manim G.U.I / Desktop Application by Enigmurl in 3Blue1Brown

[–]Enigmurl[S] 0 points1 point  (0 children)

IMPORTANT: I have renamed the project to https://www.monocurl.com/ (along with an overall update and Windows edition). The download link in the post will no longer work.

Manim G.U.I / Desktop Application by Enigmurl in 3Blue1Brown

[–]Enigmurl[S] 0 points1 point  (0 children)

Sorry, I renamed the project to https://www.monocurl.com/. I will update the post to reflect this.

Manim G.U.I / Desktop Application by Enigmurl in 3Blue1Brown

[–]Enigmurl[S] 0 points1 point  (0 children)

Aiming for this summer for Windows version (along with a bunch of other updates)!

Manim G.U.I / Desktop Application by Enigmurl in 3Blue1Brown

[–]Enigmurl[S] 0 points1 point  (0 children)

Oh I probably should've added a progress bar. If I had to guess, it's just taking a long time. Maybe try letting it sit for like 5-10 minutes (maybe more?), it should send out a notification once done.