Rickaym / manim-sideview

A Manim utility extension for Visual Studio Code.
https://marketplace.visualstudio.com/items?itemName=Rickaym.manim-sideview
MIT License
113 stars 11 forks source link

Add an integration for Manim Studio #68

Open MathItYT opened 1 year ago

MathItYT commented 1 year ago

Hello! I'm the creator of Manim Studio and I want to integrate this nice tool to see animations in VSCode with Manim Studio, so that we can achieve a Manim GUI better connected to VSCode.

What do you think about this? Could we work together?

Thanks in advance!

Rickaym commented 1 year ago

Hello, I am absolutely open to collaboration. I would be interested in what you envision for the integration of Manim Studio into the extension, would this be a ui/ux thing, commands, or something else?

Thank you for reaching out.

MathItYT commented 1 year ago

Thank you for being open to collaborate. :)

First of all, I'll say what Manim Studio is. Manim Studio is a Manim Plugin to easier make Manim animations. It's a GUI, so we can do the best of GUI in a GUI and the best of code coding in an interactive coding cell. It is not intended to replace the coding labour, but to facilitate things that can be done better in a GUI.

Secondly, I hope that Manim Sideview can have a button to open Manim Studio directly from VSCode without having to use the CLI. It's important to mention that the CLI has an option -f to pass a Python filename where there's a scene, and an option -s to pass the scene's name if we have many LiveScenes in the file. So there must be a dialog window too, so that we can specify the Python filename and the scene's name if necessary, otherwise leave both fields empty. Also, the mobject gallery that Manim Sideview has, is a nice feature that I want to use. We can use this to pass the snippet to the GUI's code cell and then send the code to Manim to render the scene. Most of the snippets of the Mobject gallery have a scene defined there, and if we could omit that part, it would be a even better thing. Remember that Manim Studio's code cell has an scope, which contains the scene itself (self) and construct() method is already running, so that we only pass a code like circ = Circle(); self.play(Create(circ)) without defining the scene and its construct method. Finally, it's obvious that Manim Sideview must preview the scene finally. Remember that the scene cannot be executed directly from manim CLI, because it depends on the PyQt6 GUI.

That's all!

Rickaym commented 1 year ago

No problem. Sounds like a cool plugin! I will check it out as soon as possible, then I'll revisit what you said and follow up. If you have anything else you would like me to consider, do send it in the meantime.

Apologies for the overdue reply, I have been rather busy.