Spaces:
Sleeping
Sleeping
# /// script | |
# dependencies = [ | |
# "bpy==4.2.0", | |
# "marimo", | |
# "numpy==2.1.2", | |
# ] | |
# /// | |
import marimo | |
__generated_with = "0.9.9" | |
app = marimo.App(width="medium") | |
def __(): | |
import numpy | |
import bpy | |
import time | |
import random | |
import marimo as mo | |
import sys | |
import tempfile | |
print(sys.version) | |
return bpy, mo, numpy, random, sys, tempfile, time | |
def __(mo): | |
w = mo.ui.file(kind="area") | |
w | |
return (w,) | |
def __(tempfile, w): | |
file_content = w.contents() | |
# Create a temporary file to save the content | |
if file_content: | |
with tempfile.NamedTemporaryFile(suffix=".blend", delete=False) as temp_file: | |
temp_file.write(file_content) | |
temp_file_path = temp_file.name | |
return file_content, temp_file, temp_file_path | |
def __(bpy, file_content, mo, temp_file_path, time): | |
start_time = time.time() | |
# Load the temporary .blend file into Blender | |
if file_content: | |
bpy.ops.wm.open_mainfile(filepath=temp_file_path) | |
# Set render engine and resolution | |
bpy.context.scene.render.engine = 'BLENDER_WORKBENCH' | |
bpy.context.scene.render.resolution_x = 500 | |
bpy.context.scene.render.resolution_y = 200 | |
# Render and save the image without any rotation | |
bpy.ops.render.render() | |
bpy.data.images["Render Result"].save_render(filepath="test.png") | |
end_time = time.time() | |
print(f"Script execution time: {end_time - start_time:.4f} seconds") | |
# Display the image | |
mo.image(src="test.png") # Uncomment this line if you have a way to display images | |
return end_time, start_time | |
if __name__ == "__main__": | |
app.run() | |