generate_hyper3d_model_via_text
Create 3D models with built-in materials in Blender by providing a textual description. Optionally control dimensions via bbox_condition. Streamlines asset generation and integration.
Instructions
Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful.
Parameters:
text_prompt: A short description of the desired model in English.
bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model.
Returns a message indicating success or failure.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bbox_condition | No | ||
| text_prompt | Yes |
Implementation Reference
- src/blender_mcp/server.py:706-740 (handler)The main handler function for the 'generate_hyper3d_model_via_text' tool. It is decorated with @mcp.tool(), processes the text prompt and optional bbox_condition using the _process_bbox helper, sends a 'create_rodin_job' command to the Blender connection, and returns job details or error.@mcp.tool() def generate_hyper3d_model_via_text( ctx: Context, text_prompt: str, bbox_condition: list[float]=None ) -> str: """ Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful. Parameters: - text_prompt: A short description of the desired model in **English**. - bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model. Returns a message indicating success or failure. """ try: blender = get_blender_connection() result = blender.send_command("create_rodin_job", { "text_prompt": text_prompt, "images": None, "bbox_condition": _process_bbox(bbox_condition), }) succeed = result.get("submit_time", False) if succeed: return json.dumps({ "task_uuid": result["uuid"], "subscription_key": result["jobs"]["subscription_key"], }) else: return json.dumps(result) except Exception as e: logger.error(f"Error generating Hyper3D task: {str(e)}") return f"Error generating Hyper3D task: {str(e)}"
- src/blender_mcp/server.py:697-704 (helper)Supporting helper function used by the tool to process and normalize the bbox_condition parameter into a list of integers scaled to 0-100 range.def _process_bbox(original_bbox: list[float] | list[int] | None) -> list[int] | None: if original_bbox is None: return None if all(isinstance(i, int) for i in original_bbox): return original_bbox if any(i<=0 for i in original_bbox): raise ValueError("Incorrect number range: bbox must be bigger than zero!") return [int(float(i) / max(original_bbox) * 100) for i in original_bbox] if original_bbox else None
- src/blender_mcp/server.py:712-722 (schema)The docstring defining the tool schema, including parameters text_prompt (str) and optional bbox_condition (list[float]), and return type str.""" Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful. Parameters: - text_prompt: A short description of the desired model in **English**. - bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model. Returns a message indicating success or failure. """