Feedback Diagrams
This module provides classes and functions for creating control system block diagram animations.
Class Overview
A complete control system diagram manager. |
|
A configurable block for control system diagrams. |
|
A connection between two control blocks with optional labeling. |
Detailed Documentation
ControlSystem Class
- class ControlSystem[source]
Bases:
objectA complete control system diagram manager.
This class manages the creation, connection, and animation of control system components including blocks, connections, inputs, outputs, and feedback paths.
- add_block(name, block_type, position, params=None)[source]
Adds a new block to the system
- Parameters:
name (str) – Name of the block
block_type (str) –
- Type of block, which can be of type:
-summing_junction: Creates a summing junction (circular) -transfer_function: Creates a transfer function (rectangular)
position (np.ndarray | Sequence[float]) – The position of the block
params (any) –
- Further parameter specifications of the block:
-label; use_math_tex, …
- connect(source_block, output_port, dest_block, input_port, style='default', label=None, font_size=30, use_math_tex=True, **kwargs)[source]
Connect blocks with arrow and optional label
- Parameters:
source_block (ControlBlock | str) – The block the connection should start from
output_port (str) – The port of the source_block where the connection should start from
dest_block (ControlBlock | str) – The block the connection should go to
input_port (str) – The port of the dest_block where the connection should go to
style (str) – Style of the arrow which can be any of: -default: Continuous connection with standard settings -dashed: Dashed connection -bold: Continuous connection with increased stroke_width
label (str) – Label of the connection
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text: -If true: LaTeX -If false: Regular text
**kwargs (any) – Additional arguments to be passed to the connection such as: Color: color of the connection stroke_width: Thickness of the line connection
- insert_between(new_block, source_block, dest_block)[source]
Inserts a block between two existing blocks
- Parameters:
new_block (ControlBlock | str) – Add new block
source_block (ControlBlock | str) – The block where the connection originates from
dest_block (ControlBlock | str) – The block where the connection goes to
- add_input(target_block, input_port, length=2, buff=0.05, label=None, use_math_tex=True, font_size=30, **kwargs)[source]
Adds an input arrow to a block.
- Parameters:
target_block (ControlBlock | str) – The block where the input should be applied to
input_port (str) – The input port where the input should go to from the selected target block
length (float) – The length of the input connection
buff (float) – The buffer between the end point of the arrow and the input port
label (str) – Label of the input
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text
**kwargs (any) – Additional arguments to be passed to Arrow: -stroke_width: Thickness of the arrow line -stroke_opacity: Opacity of the arrow -color: color of the arrow
- add_output(source_block, output_port, length=2, use_math_tex=True, label=None, font_size=25, color=ManimColor('#FFFFFF'), rel_label_pos=array([0., 1., 0.]), **kwargs)[source]
Adds an output arrow from a block
- Parameters:
source_block (ControlBlock | str) – The block where the output should originate from
output_port (str) – The output port where the output should start from
length (float) – The length of the output connection
buff (float) – The buffer between the end point of the arrow and the output port
label (str) – Label of the output
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text
**kwargs (any) – Additional arguments to be passed to Arrow: -stroke_width: Thickness of the arrow line -stroke_opacity: Opacity of the arrow -color: color of the arrow
- add_feedback_path(source_block, output_port, dest_block, input_port, vertical_distance=1.5, horizontal_distance=None, rel_start_offset=None, rel_end_offset=None, label=None, use_math_tex=True, color=ManimColor('#FFFFFF'), label_pos=array([0., 1., 0.]), label_buff=0.2, **kwargs)[source]
Adds a feedback path that adapts to the input port direction of the destination.
- Parameters:
source_block (ControlBlock | str) – The block the feedback path should start from
output_port (str) – The output port of the source block where the feedback path should start from
dest_block (ControlBlock | str) – The block the feedback path should go to
input_port (str) – The input port of the destination block the feedback path should go to
vertical_distance (float) – The vertical distance the feedback path should shift upwards or downwards
distance (Horizontal) – The vertical distance the feedback path should shift upwards or downwards
rel_start_offset (np.ndarray | None) – The start offset relative to the output port of the source block of the feedback path
rel_end_offset (np.ndarray | None) – The end offset relative to the input port of the destination block of the feedback path
label (str | None) – Label of the feedback path
use_math_tex (bool) – When True, uses Mathtex for the label. If False, uses regular Text.
label_pos (np.ndarray | None) – Position relative to the path where the label should be placed. Common values are UP, DOWN, LEFT, RIGHT or specific direction arrays.
label_buff (float) – Buffer distance between the label and the feedback path.
color (Manim color) – Color of the feedback path
**kwargs (Any) – Additional arguments passed to the Line constructor (e.g., stroke_width, stroke_opacity).
- Returns:
A VGroup containing a set of lines representing the feedback path
- Return type:
VGroup
- add_feedforward_path(source_block, output_port, dest_block, input_port, vertical_distance=None, horizontal_distance=None, label=None, use_math_tex=True, label_buff=0.2, rel_start_offset=None, rel_end_offset=None, font_size=30, color=ManimColor('#FFFFFF'), **kwargs)[source]
Adds a feedforward path that adapts to the input port direction of the destination.
- Parameters:
source_block (ControlBlock | str) – The block the feedforward path should start from
output_port (str) – The output port of the source block where the feedforward path should start from
dest_block (ControlBlock | str) – The block the feedforward path should go to
input_port (str) – The input port of the destination block the feedforward path should go to
vertical_distance (float) – The vertical distance the feedforward path should shift upwards or downwards
distance (Horizontal) – The horizontal distance the feedforward path should shift upwards or downwards
rel_start_offset (np.ndarray | None) – The start offset relative to the output port of the source block of the feedforward path
rel_end_offset (np.ndarray | None) – The end offset relative to the input port of the destination block of the feedforward path
label (String) – Label of the feedforward path
use_math_tex (bool) – When True, uses Mathtex for the label. If False, uses regular Text.
label_pos (np.ndarray | None) – Relative label position
label_buff (float) – Buffer between arrow/Line and label
font_size (float) – font size of label
color (Manim color) – Color of the feedback path
**kwargs (Any) – Additional arguments passed to the Line constructor (e.g., stroke_width, stroke_opacity).
- Returns:
A VGroup containing a set of lines representing the feedforward path
- Return type:
VGroup
- get_all_components()[source]
Function which returns all current components of the block diagram in one single VGroup
- animate_signals(scene, *blocks, spawn_interval=0.5, signal_speed=1.5, duration=10.0, color=ManimColor('#F7D96F'), feedback_color=ManimColor('#F7D96F'), feedforward_color=ManimColor('#F7D96F'), radius=0.08, include_input=True, include_output=True, include_feedback=True, include_feedforward=True, feedforward_delay=None, feedback_delay=None)[source]
Animates real-time signal flow for a given block diagram.
Creates moving dots that travel along connections, inputs, outputs, feedback, and feedforward paths to visualize signal propagation through the control system.
- Parameters:
scene (Scene) – The Manim scene object where the animation will be rendered.
*blocks (ControlBlock or str) – Variable number of blocks defining the main signal path sequence. Blocks can be provided as ControlBlock objects or block names. The animation will follow the connection path between these blocks in order.
spawn_interval (float, optional) – Time interval between spawning new signal dots, in seconds. Smaller values create more frequent signals. (default: 0.5)
signal_speed (float, optional) – Speed of signal dots movement in units per second. (default: 0.8)
duration (float, optional) – Total duration of the animation in seconds. (default: 10.0)
color (Manim color, optional) – Color of the main signal path dots. (default: YELLOW)
feedback_color (Manim color, optional) – Color of the feedback path signal dots. (default: YELLOW)
feedforward_color (Manim color, optional) – Color of the feedforward path signal dots. (default: YELLOW)
radius (float, optional) – Radius of the signal dots. (default: 0.12)
include_input (bool, optional) – Whether to animate signals on system input arrows. (default: True)
include_output (bool, optional) – Whether to animate signals on system output arrows. (default: True)
include_feedback (bool, optional) – Whether to animate signals on feedback paths. (default: True)
include_feedforward (bool, optional) – Whether to animate signals on feedforward paths. (default: True)
feedforward_delay (float or None, optional) – Delay before starting feedforward signal animation, in seconds. If None, automatically calculated based on signal path geometry. (default: None)
feedback_delay (float or None, optional) – Delay before starting feedback signal animation, in seconds. If None, automatically calculated based on signal path geometry. (default: None)
**kwargs (Any) – Additional arguments passed to the Dot constructor for signal dots: - fill_opacity: float - Opacity of the signal dots - stroke_width: float - Border stroke width - stroke_color: Manim color - Border color
- Returns:
An animation of real-time signal flow
- Return type:
Scene
- add_block(name, block_type, position, params=None)[source]
Adds a new block to the system
- Parameters:
name (str) – Name of the block
block_type (str) –
- Type of block, which can be of type:
-summing_junction: Creates a summing junction (circular) -transfer_function: Creates a transfer function (rectangular)
position (np.ndarray | Sequence[float]) – The position of the block
params (any) –
- Further parameter specifications of the block:
-label; use_math_tex, …
- add_feedback_path(source_block, output_port, dest_block, input_port, vertical_distance=1.5, horizontal_distance=None, rel_start_offset=None, rel_end_offset=None, label=None, use_math_tex=True, color=ManimColor('#FFFFFF'), label_pos=array([0., 1., 0.]), label_buff=0.2, **kwargs)[source]
Adds a feedback path that adapts to the input port direction of the destination.
- Parameters:
source_block (ControlBlock | str) – The block the feedback path should start from
output_port (str) – The output port of the source block where the feedback path should start from
dest_block (ControlBlock | str) – The block the feedback path should go to
input_port (str) – The input port of the destination block the feedback path should go to
vertical_distance (float) – The vertical distance the feedback path should shift upwards or downwards
distance (Horizontal) – The vertical distance the feedback path should shift upwards or downwards
rel_start_offset (np.ndarray | None) – The start offset relative to the output port of the source block of the feedback path
rel_end_offset (np.ndarray | None) – The end offset relative to the input port of the destination block of the feedback path
label (str | None) – Label of the feedback path
use_math_tex (bool) – When True, uses Mathtex for the label. If False, uses regular Text.
label_pos (np.ndarray | None) – Position relative to the path where the label should be placed. Common values are UP, DOWN, LEFT, RIGHT or specific direction arrays.
label_buff (float) – Buffer distance between the label and the feedback path.
color (Manim color) – Color of the feedback path
**kwargs (Any) – Additional arguments passed to the Line constructor (e.g., stroke_width, stroke_opacity).
- Returns:
A VGroup containing a set of lines representing the feedback path
- Return type:
VGroup
- add_feedforward_path(source_block, output_port, dest_block, input_port, vertical_distance=None, horizontal_distance=None, label=None, use_math_tex=True, label_buff=0.2, rel_start_offset=None, rel_end_offset=None, font_size=30, color=ManimColor('#FFFFFF'), **kwargs)[source]
Adds a feedforward path that adapts to the input port direction of the destination.
- Parameters:
source_block (ControlBlock | str) – The block the feedforward path should start from
output_port (str) – The output port of the source block where the feedforward path should start from
dest_block (ControlBlock | str) – The block the feedforward path should go to
input_port (str) – The input port of the destination block the feedforward path should go to
vertical_distance (float) – The vertical distance the feedforward path should shift upwards or downwards
distance (Horizontal) – The horizontal distance the feedforward path should shift upwards or downwards
rel_start_offset (np.ndarray | None) – The start offset relative to the output port of the source block of the feedforward path
rel_end_offset (np.ndarray | None) – The end offset relative to the input port of the destination block of the feedforward path
label (String) – Label of the feedforward path
use_math_tex (bool) – When True, uses Mathtex for the label. If False, uses regular Text.
label_pos (np.ndarray | None) – Relative label position
label_buff (float) – Buffer between arrow/Line and label
font_size (float) – font size of label
color (Manim color) – Color of the feedback path
**kwargs (Any) – Additional arguments passed to the Line constructor (e.g., stroke_width, stroke_opacity).
- Returns:
A VGroup containing a set of lines representing the feedforward path
- Return type:
VGroup
- add_input(target_block, input_port, length=2, buff=0.05, label=None, use_math_tex=True, font_size=30, **kwargs)[source]
Adds an input arrow to a block.
- Parameters:
target_block (ControlBlock | str) – The block where the input should be applied to
input_port (str) – The input port where the input should go to from the selected target block
length (float) – The length of the input connection
buff (float) – The buffer between the end point of the arrow and the input port
label (str) – Label of the input
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text
**kwargs (any) – Additional arguments to be passed to Arrow: -stroke_width: Thickness of the arrow line -stroke_opacity: Opacity of the arrow -color: color of the arrow
- add_output(source_block, output_port, length=2, use_math_tex=True, label=None, font_size=25, color=ManimColor('#FFFFFF'), rel_label_pos=array([0., 1., 0.]), **kwargs)[source]
Adds an output arrow from a block
- Parameters:
source_block (ControlBlock | str) – The block where the output should originate from
output_port (str) – The output port where the output should start from
length (float) – The length of the output connection
buff (float) – The buffer between the end point of the arrow and the output port
label (str) – Label of the output
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text
**kwargs (any) – Additional arguments to be passed to Arrow: -stroke_width: Thickness of the arrow line -stroke_opacity: Opacity of the arrow -color: color of the arrow
- animate_signals(scene, *blocks, spawn_interval=0.5, signal_speed=1.5, duration=10.0, color=ManimColor('#F7D96F'), feedback_color=ManimColor('#F7D96F'), feedforward_color=ManimColor('#F7D96F'), radius=0.08, include_input=True, include_output=True, include_feedback=True, include_feedforward=True, feedforward_delay=None, feedback_delay=None)[source]
Animates real-time signal flow for a given block diagram.
Creates moving dots that travel along connections, inputs, outputs, feedback, and feedforward paths to visualize signal propagation through the control system.
- Parameters:
scene (Scene) – The Manim scene object where the animation will be rendered.
*blocks (ControlBlock or str) – Variable number of blocks defining the main signal path sequence. Blocks can be provided as ControlBlock objects or block names. The animation will follow the connection path between these blocks in order.
spawn_interval (float, optional) – Time interval between spawning new signal dots, in seconds. Smaller values create more frequent signals. (default: 0.5)
signal_speed (float, optional) – Speed of signal dots movement in units per second. (default: 0.8)
duration (float, optional) – Total duration of the animation in seconds. (default: 10.0)
color (Manim color, optional) – Color of the main signal path dots. (default: YELLOW)
feedback_color (Manim color, optional) – Color of the feedback path signal dots. (default: YELLOW)
feedforward_color (Manim color, optional) – Color of the feedforward path signal dots. (default: YELLOW)
radius (float, optional) – Radius of the signal dots. (default: 0.12)
include_input (bool, optional) – Whether to animate signals on system input arrows. (default: True)
include_output (bool, optional) – Whether to animate signals on system output arrows. (default: True)
include_feedback (bool, optional) – Whether to animate signals on feedback paths. (default: True)
include_feedforward (bool, optional) – Whether to animate signals on feedforward paths. (default: True)
feedforward_delay (float or None, optional) – Delay before starting feedforward signal animation, in seconds. If None, automatically calculated based on signal path geometry. (default: None)
feedback_delay (float or None, optional) – Delay before starting feedback signal animation, in seconds. If None, automatically calculated based on signal path geometry. (default: None)
**kwargs (Any) – Additional arguments passed to the Dot constructor for signal dots: - fill_opacity: float - Opacity of the signal dots - stroke_width: float - Border stroke width - stroke_color: Manim color - Border color
- Returns:
An animation of real-time signal flow
- Return type:
Scene
- connect(source_block, output_port, dest_block, input_port, style='default', label=None, font_size=30, use_math_tex=True, **kwargs)[source]
Connect blocks with arrow and optional label
- Parameters:
source_block (ControlBlock | str) – The block the connection should start from
output_port (str) – The port of the source_block where the connection should start from
dest_block (ControlBlock | str) – The block the connection should go to
input_port (str) – The port of the dest_block where the connection should go to
style (str) – Style of the arrow which can be any of: -default: Continuous connection with standard settings -dashed: Dashed connection -bold: Continuous connection with increased stroke_width
label (str) – Label of the connection
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text: -If true: LaTeX -If false: Regular text
**kwargs (any) – Additional arguments to be passed to the connection such as: Color: color of the connection stroke_width: Thickness of the line connection
- get_all_components()[source]
Function which returns all current components of the block diagram in one single VGroup
- insert_between(new_block, source_block, dest_block)[source]
Inserts a block between two existing blocks
- Parameters:
new_block (ControlBlock | str) – Add new block
source_block (ControlBlock | str) – The block where the connection originates from
dest_block (ControlBlock | str) – The block where the connection goes to
ControlSystem Methods
- ControlSystem.add_block(name, block_type, position, params=None)[source]
Adds a new block to the system
- Parameters:
name (str) – Name of the block
block_type (str) –
- Type of block, which can be of type:
-summing_junction: Creates a summing junction (circular) -transfer_function: Creates a transfer function (rectangular)
position (np.ndarray | Sequence[float]) – The position of the block
params (any) –
- Further parameter specifications of the block:
-label; use_math_tex, …
- ControlSystem.connect(source_block, output_port, dest_block, input_port, style='default', label=None, font_size=30, use_math_tex=True, **kwargs)[source]
Connect blocks with arrow and optional label
- Parameters:
source_block (ControlBlock | str) – The block the connection should start from
output_port (str) – The port of the source_block where the connection should start from
dest_block (ControlBlock | str) – The block the connection should go to
input_port (str) – The port of the dest_block where the connection should go to
style (str) – Style of the arrow which can be any of: -default: Continuous connection with standard settings -dashed: Dashed connection -bold: Continuous connection with increased stroke_width
label (str) – Label of the connection
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text: -If true: LaTeX -If false: Regular text
**kwargs (any) – Additional arguments to be passed to the connection such as: Color: color of the connection stroke_width: Thickness of the line connection
- ControlSystem.insert_between(new_block, source_block, dest_block)[source]
Inserts a block between two existing blocks
- Parameters:
new_block (ControlBlock | str) – Add new block
source_block (ControlBlock | str) – The block where the connection originates from
dest_block (ControlBlock | str) – The block where the connection goes to
- ControlSystem.add_input(target_block, input_port, length=2, buff=0.05, label=None, use_math_tex=True, font_size=30, **kwargs)[source]
Adds an input arrow to a block.
- Parameters:
target_block (ControlBlock | str) – The block where the input should be applied to
input_port (str) – The input port where the input should go to from the selected target block
length (float) – The length of the input connection
buff (float) – The buffer between the end point of the arrow and the input port
label (str) – Label of the input
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text
**kwargs (any) – Additional arguments to be passed to Arrow: -stroke_width: Thickness of the arrow line -stroke_opacity: Opacity of the arrow -color: color of the arrow
- ControlSystem.add_output(source_block, output_port, length=2, use_math_tex=True, label=None, font_size=25, color=ManimColor('#FFFFFF'), rel_label_pos=array([0., 1., 0.]), **kwargs)[source]
Adds an output arrow from a block
- Parameters:
source_block (ControlBlock | str) – The block where the output should originate from
output_port (str) – The output port where the output should start from
length (float) – The length of the output connection
buff (float) – The buffer between the end point of the arrow and the output port
label (str) – Label of the output
font_size (float) – Font size of the label
use_math_tex (bool) – Boolean which determines whether the label should be rendered in LaTeX or regular text
**kwargs (any) – Additional arguments to be passed to Arrow: -stroke_width: Thickness of the arrow line -stroke_opacity: Opacity of the arrow -color: color of the arrow
- ControlSystem.add_feedback_path(source_block, output_port, dest_block, input_port, vertical_distance=1.5, horizontal_distance=None, rel_start_offset=None, rel_end_offset=None, label=None, use_math_tex=True, color=ManimColor('#FFFFFF'), label_pos=array([0., 1., 0.]), label_buff=0.2, **kwargs)[source]
Adds a feedback path that adapts to the input port direction of the destination.
- Parameters:
source_block (ControlBlock | str) – The block the feedback path should start from
output_port (str) – The output port of the source block where the feedback path should start from
dest_block (ControlBlock | str) – The block the feedback path should go to
input_port (str) – The input port of the destination block the feedback path should go to
vertical_distance (float) – The vertical distance the feedback path should shift upwards or downwards
distance (Horizontal) – The vertical distance the feedback path should shift upwards or downwards
rel_start_offset (np.ndarray | None) – The start offset relative to the output port of the source block of the feedback path
rel_end_offset (np.ndarray | None) – The end offset relative to the input port of the destination block of the feedback path
label (str | None) – Label of the feedback path
use_math_tex (bool) – When True, uses Mathtex for the label. If False, uses regular Text.
label_pos (np.ndarray | None) – Position relative to the path where the label should be placed. Common values are UP, DOWN, LEFT, RIGHT or specific direction arrays.
label_buff (float) – Buffer distance between the label and the feedback path.
color (Manim color) – Color of the feedback path
**kwargs (Any) – Additional arguments passed to the Line constructor (e.g., stroke_width, stroke_opacity).
- Returns:
A VGroup containing a set of lines representing the feedback path
- Return type:
VGroup
- ControlSystem.add_feedforward_path(source_block, output_port, dest_block, input_port, vertical_distance=None, horizontal_distance=None, label=None, use_math_tex=True, label_buff=0.2, rel_start_offset=None, rel_end_offset=None, font_size=30, color=ManimColor('#FFFFFF'), **kwargs)[source]
Adds a feedforward path that adapts to the input port direction of the destination.
- Parameters:
source_block (ControlBlock | str) – The block the feedforward path should start from
output_port (str) – The output port of the source block where the feedforward path should start from
dest_block (ControlBlock | str) – The block the feedforward path should go to
input_port (str) – The input port of the destination block the feedforward path should go to
vertical_distance (float) – The vertical distance the feedforward path should shift upwards or downwards
distance (Horizontal) – The horizontal distance the feedforward path should shift upwards or downwards
rel_start_offset (np.ndarray | None) – The start offset relative to the output port of the source block of the feedforward path
rel_end_offset (np.ndarray | None) – The end offset relative to the input port of the destination block of the feedforward path
label (String) – Label of the feedforward path
use_math_tex (bool) – When True, uses Mathtex for the label. If False, uses regular Text.
label_pos (np.ndarray | None) – Relative label position
label_buff (float) – Buffer between arrow/Line and label
font_size (float) – font size of label
color (Manim color) – Color of the feedback path
**kwargs (Any) – Additional arguments passed to the Line constructor (e.g., stroke_width, stroke_opacity).
- Returns:
A VGroup containing a set of lines representing the feedforward path
- Return type:
VGroup
- ControlSystem.get_all_components()[source]
Function which returns all current components of the block diagram in one single VGroup
- ControlSystem.animate_signals(scene, *blocks, spawn_interval=0.5, signal_speed=1.5, duration=10.0, color=ManimColor('#F7D96F'), feedback_color=ManimColor('#F7D96F'), feedforward_color=ManimColor('#F7D96F'), radius=0.08, include_input=True, include_output=True, include_feedback=True, include_feedforward=True, feedforward_delay=None, feedback_delay=None)[source]
Animates real-time signal flow for a given block diagram.
Creates moving dots that travel along connections, inputs, outputs, feedback, and feedforward paths to visualize signal propagation through the control system.
- Parameters:
scene (Scene) – The Manim scene object where the animation will be rendered.
*blocks (ControlBlock or str) – Variable number of blocks defining the main signal path sequence. Blocks can be provided as ControlBlock objects or block names. The animation will follow the connection path between these blocks in order.
spawn_interval (float, optional) – Time interval between spawning new signal dots, in seconds. Smaller values create more frequent signals. (default: 0.5)
signal_speed (float, optional) – Speed of signal dots movement in units per second. (default: 0.8)
duration (float, optional) – Total duration of the animation in seconds. (default: 10.0)
color (Manim color, optional) – Color of the main signal path dots. (default: YELLOW)
feedback_color (Manim color, optional) – Color of the feedback path signal dots. (default: YELLOW)
feedforward_color (Manim color, optional) – Color of the feedforward path signal dots. (default: YELLOW)
radius (float, optional) – Radius of the signal dots. (default: 0.12)
include_input (bool, optional) – Whether to animate signals on system input arrows. (default: True)
include_output (bool, optional) – Whether to animate signals on system output arrows. (default: True)
include_feedback (bool, optional) – Whether to animate signals on feedback paths. (default: True)
include_feedforward (bool, optional) – Whether to animate signals on feedforward paths. (default: True)
feedforward_delay (float or None, optional) – Delay before starting feedforward signal animation, in seconds. If None, automatically calculated based on signal path geometry. (default: None)
feedback_delay (float or None, optional) – Delay before starting feedback signal animation, in seconds. If None, automatically calculated based on signal path geometry. (default: None)
**kwargs (Any) – Additional arguments passed to the Dot constructor for signal dots: - fill_opacity: float - Opacity of the signal dots - stroke_width: float - Border stroke width - stroke_color: Manim color - Border color
- Returns:
An animation of real-time signal flow
- Return type:
Scene