|
|
|
|
|
import gradio as gr |
|
|
import os |
|
|
import shutil |
|
|
import uuid |
|
|
import subprocess |
|
|
from threading import Timer |
|
|
from functools import partial |
|
|
import time |
|
|
|
|
|
from gradio_motioncanvasplayer import MotionCanvasPlayer |
|
|
|
|
|
|
|
|
example_project_path = "https://prathje-gradio-motioncanvasplayer.hf.space/gradio_api/file=/home/user/app/public/project-3.17.2.js" |
|
|
|
|
|
def slow_echo(message, history): |
|
|
for i in range(len(message)): |
|
|
time.sleep(0.3) |
|
|
yield "You typed: " + message[: i+1] |
|
|
|
|
|
gr.ChatInterface( |
|
|
fn=slow_echo, |
|
|
type="messages" |
|
|
).launch() |
|
|
|
|
|
def load_example(example): |
|
|
return example['project_path'], example['code'], "" |
|
|
|
|
|
with gr.Blocks(theme=gr.themes.Monochrome()) as app: |
|
|
gr.Markdown("# Motion Canvas Agent") |
|
|
gr.Markdown("Leverage the power of AI and Motion Canvas to create animations using TypeScript.") |
|
|
with gr.Row(): |
|
|
with gr.Column(): |
|
|
gr.Markdown("## Chat") |
|
|
chat = gr.ChatInterface(fn=slow_echo, type="messages") |
|
|
|
|
|
|
|
|
gr.Markdown("### TypeScript Code for Your Scene") |
|
|
code = gr.Code(value="", language="typescript") |
|
|
logs = gr.Textbox(value="", label="Build Logs", interactive=False) |
|
|
|
|
|
with gr.Column(): |
|
|
gr.Markdown("## Preview") |
|
|
player = MotionCanvasPlayer(example_project_path, auto=True, quality=0.5, width=1920, height=1080, variables="{}") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
|
app.launch(mcp_server=False, strict_cors=False) |