Generate Blender Cube Fire Animation Using Python

Blender Cube Fire Animation rendered image

Live stream set for 2025-05-11 at 14:00:00 Eastern

Ask questions in the live chat about any programming or lifestyle topic.

This livestream will be on YouTube or you can watch below.

Blender Is A 3D Creation Software Tool

Blender is cross-platform for Mac OS including POSIX systems, Windows and Linux.

Blender is written in C++ and Python. It is easy to customize using extensions which include add-ons and themes. Blender comes with a built-in video sequence editor (VSE).

The Quick Smoke effect strip can be used to quickly create a fire animation.

The focus of this tutorial will be using the Blender Python API to create a custom script that generates a cube fire animation.

  1. Use default cube objects
  2. Add a Quick Smoke effect.
  3. Change the effect from smoke to fire.
  4. Tweak the Smoke Domain Material settings before the render.
  5. Render out the animation.
  6. Create a blend file.

Requirements For Blender Python API

Glossary:

API

Application Programming Interface is a set of rules or protocols that enables software applications to communicate with each other to exchange data, features, and functionality.

UI

User Interface is the point of interaction between humans and machines, allowing effective operation and control of the machine from the human end.

Blender Editors

Used for displaying and modifying different aspects of data.

Blender Areas

Window divided into a number of rectangles that reserve space for Editors.

Blender Workspaces

Predefined window layouts consisting of a set of Areas containing Editors for specific tasks.

Tools

Programming Tools
Name Description Example
Text editor For creating and editing source code Apache Netbeans IDE
SSH Secure Shell Client OpenSSH
Shell Access Access to the command line. Terminal
Name Description Example

Overview:

  • Text editor
  • Syntax highlighting
  • Autocompletion
  • Smart indent
  • Find and replace
  • Run script

Menus:

  1. File menu.
  2. Edit menu.
  3. Render menu.
  4. Help menu.

Workspaces:

  1. Scripting Workspace.
  2. Video Editing Workspace.

Scripting Context Menus:

  • Cut
  • Copy
  • Paste
  • Duplicate Line
  • Move Line(s) Up
  • Move Line(s) Down
  • Indent
  • Unindent
  • Toggle Comments
  • Text Auto Complete

import bpy

bpy.ops.object.modifier_add(type='FLUID')
bpy.ops.mesh.primitive_cube_add(enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))
bpy.ops.object.modifier_add(type='FLUID')
bpy.ops.object.material_slot_add()
bpy.ops.object.quick_smoke()

# Change From Smoke To Fire #
bpy.data.objects["Cube.001"].modifiers["Fluid"].flow_settings.flow_type = 'FIRE'

# Workaronud to Resolve Rendering Issue #
bpy.data.materials["Smoke Domain Material"].node_tree.nodes["Principled Volume"].inputs[8].default_value = 0.5

# Render Settings #
bpy.context.scene.eevee.taa_render_samples = 16
bpy.context.scene.render.film_transparent = True
bpy.context.scene.render.resolution_x = 1920
bpy.context.scene.render.resolution_y = 1080
bpy.context.scene.render.resolution_percentage = 100
bpy.context.scene.render.fps = 30
bpy.context.scene.frame_end = 150
bpy.context.scene.render.filepath = "//video-cubefire-"
bpy.context.scene.render.image_settings.file_format = "FFMPEG"
bpy.context.scene.render.ffmpeg.format = "MPEG4"
bpy.context.scene.render.ffmpeg.codec = "H264"
bpy.context.scene.render.ffmpeg.audio_codec = "NONE"
bpy.context.scene.render.ffmpeg.constant_rate_factor = "MEDIUM"
bpy.context.scene.render.ffmpeg.ffmpeg_preset = "REALTIME"

# Render Animation #
bpy.ops.render.render(animation=True, write_still=True)

# Generate Blend File #
bpy.ops.wm.save_as_mainfile(filepath="cubefire.blend")

Blender Python API File Start Screen
Blender Python API Generated Blend File Start Screen

Blender Python API File Scripting Screen
Blender Python API Generated Blend File Scripting Screen

Blender Python API File Render Screen
Blender Python API Generated Blend File Render Screen


Usage

Blender can be installed at the any time before or after installing Python. Blender can be downloaded from Blender project. Python can be downloaded from Python language. The initial screen displays a default cube, camera and light source. The scripting screen displays a Python Interactive console window and an editor window. It is possible to open a custom python file or paste code into the editor. Editor features such as line numbers, word wrap, syntax highlighting, and zoom are available.

Open Source

Blender is licensed under the GNU General Public License, version 2 or later. The copyleft license comes with strict rules and requirements to ensure the software remains free and open-source. It allows commercial use, modification, distribution, and allows making derivatives proprietary, consult the license for more specific details.

Python is licensed under the Python Software Foundation License. The permissive license requires the preservation of the copyright notice and disclaimer. It allows commercial use, modification, distribution, and allows making derivatives proprietary, consult the license for more specific details.

Conclusion:

Install the Blender application by compiling from source or downloading binaries for your device. Use Python to create custom scripts or extensions for Blender customization. The Blender Python API can be used to dynamically generate cube fire animations and render the output.

If you enjoy this article, consider supporting me by purchasing one of my WordPress Ojambo.com Plugins or programming OjamboShop.com Online Courses or publications at Edward Ojambo Programming Books or become a donor here Ojambo.com Donate

References:

Leave a Reply

Your email address will not be published. Required fields are marked *