# {py:mod}`simvx.core.coroutines` ```{py:module} simvx.core.coroutines ``` ```{autodoc2-docstring} simvx.core.coroutines :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`parallel ` - ```{autodoc2-docstring} simvx.core.coroutines.parallel :summary: ``` * - {py:obj}`wait ` - ```{autodoc2-docstring} simvx.core.coroutines.wait :summary: ``` * - {py:obj}`wait_until ` - ```{autodoc2-docstring} simvx.core.coroutines.wait_until :summary: ``` * - {py:obj}`wait_signal ` - ```{autodoc2-docstring} simvx.core.coroutines.wait_signal :summary: ``` * - {py:obj}`next_frame ` - ```{autodoc2-docstring} simvx.core.coroutines.next_frame :summary: ``` * - {py:obj}`punch_position ` - ```{autodoc2-docstring} simvx.core.coroutines.punch_position :summary: ``` * - {py:obj}`punch_rotation ` - ```{autodoc2-docstring} simvx.core.coroutines.punch_rotation :summary: ``` ```` ### API ````{py:function} parallel(*coroutines: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.parallel ```{autodoc2-docstring} simvx.core.coroutines.parallel ``` ```` ````{py:function} wait(seconds: float) -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.wait ```{autodoc2-docstring} simvx.core.coroutines.wait ``` ```` ````{py:function} wait_until(condition: collections.abc.Callable[[], bool]) -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.wait_until ```{autodoc2-docstring} simvx.core.coroutines.wait_until ``` ```` ````{py:function} wait_signal(signal: simvx.core.signals.Signal) -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.wait_signal ```{autodoc2-docstring} simvx.core.coroutines.wait_signal ``` ```` ````{py:function} next_frame() -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.next_frame ```{autodoc2-docstring} simvx.core.coroutines.next_frame ``` ```` ````{py:function} punch_position(node, amplitude, duration: float, *, frequency: float = 12.0, decay: float = 6.0, attr: str = 'position') -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.punch_position ```{autodoc2-docstring} simvx.core.coroutines.punch_position ``` ```` ````{py:function} punch_rotation(node, amplitude: float, duration: float, *, frequency: float = 12.0, decay: float = 6.0, attr: str = 'rotation') -> simvx.core.descriptors.Coroutine :canonical: simvx.core.coroutines.punch_rotation ```{autodoc2-docstring} simvx.core.coroutines.punch_rotation ``` ````