# {py:mod}`simvx.core.world_environment` ```{py:module} simvx.core.world_environment ``` ```{autodoc2-docstring} simvx.core.world_environment :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PostProcessEffect ` - ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect :summary: ``` * - {py:obj}`WorldEnvironment ` - ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment :summary: ``` * - {py:obj}`Environment ` - ```{autodoc2-docstring} simvx.core.world_environment.Environment :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`log ` - ```{autodoc2-docstring} simvx.core.world_environment.log :summary: ``` ```` ### API ````{py:data} log :canonical: simvx.core.world_environment.log :value: > 'getLogger(...)' ```{autodoc2-docstring} simvx.core.world_environment.log ``` ```` `````{py:class} PostProcessEffect(shader_code: str = '', *, enabled: bool = True, order: int = 0, language: str = 'glsl') :canonical: simvx.core.world_environment.PostProcessEffect ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.world_environment.PostProcessEffect.__slots__ :value: > ('_shader_code', '_enabled', '_order', '_uniforms', '_uniform_types', '_dirty', '_language') ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.__slots__ ``` ```` ````{py:property} language :canonical: simvx.core.world_environment.PostProcessEffect.language :type: str ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.language ``` ```` ````{py:property} shader_code :canonical: simvx.core.world_environment.PostProcessEffect.shader_code :type: str ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.shader_code ``` ```` ````{py:property} enabled :canonical: simvx.core.world_environment.PostProcessEffect.enabled :type: bool ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.enabled ``` ```` ````{py:property} order :canonical: simvx.core.world_environment.PostProcessEffect.order :type: int ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.order ``` ```` ````{py:property} uniforms :canonical: simvx.core.world_environment.PostProcessEffect.uniforms :type: dict[str, typing.Any] ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.uniforms ``` ```` ````{py:property} dirty :canonical: simvx.core.world_environment.PostProcessEffect.dirty :type: bool ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.dirty ``` ```` ````{py:method} clear_dirty() -> None :canonical: simvx.core.world_environment.PostProcessEffect.clear_dirty ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.clear_dirty ``` ```` ````{py:method} set_uniform(name: str, value: typing.Any) -> None :canonical: simvx.core.world_environment.PostProcessEffect.set_uniform ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.set_uniform ``` ```` ````{py:method} get_uniform(name: str) -> typing.Any :canonical: simvx.core.world_environment.PostProcessEffect.get_uniform ```{autodoc2-docstring} simvx.core.world_environment.PostProcessEffect.get_uniform ``` ```` ````{py:method} __repr__() -> str :canonical: simvx.core.world_environment.PostProcessEffect.__repr__ ```` ````` `````{py:class} WorldEnvironment(name: str = 'WorldEnvironment', **kwargs) :canonical: simvx.core.world_environment.WorldEnvironment Bases: {py:obj}`simvx.core.node.Node` ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.__init__ ``` ````{py:attribute} ambient_light_colour :canonical: simvx.core.world_environment.WorldEnvironment.ambient_light_colour :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.ambient_light_colour ``` ```` ````{py:attribute} ambient_light_energy :canonical: simvx.core.world_environment.WorldEnvironment.ambient_light_energy :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.ambient_light_energy ``` ```` ````{py:attribute} ambient_light_mode :canonical: simvx.core.world_environment.WorldEnvironment.ambient_light_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.ambient_light_mode ``` ```` ````{py:attribute} fog_enabled :canonical: simvx.core.world_environment.WorldEnvironment.fog_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_enabled ``` ```` ````{py:attribute} fog_colour :canonical: simvx.core.world_environment.WorldEnvironment.fog_colour :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_colour ``` ```` ````{py:attribute} fog_density :canonical: simvx.core.world_environment.WorldEnvironment.fog_density :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_density ``` ```` ````{py:attribute} fog_start :canonical: simvx.core.world_environment.WorldEnvironment.fog_start :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_start ``` ```` ````{py:attribute} fog_end :canonical: simvx.core.world_environment.WorldEnvironment.fog_end :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_end ``` ```` ````{py:attribute} fog_mode :canonical: simvx.core.world_environment.WorldEnvironment.fog_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_mode ``` ```` ````{py:attribute} fog_height :canonical: simvx.core.world_environment.WorldEnvironment.fog_height :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_height ``` ```` ````{py:attribute} fog_height_density :canonical: simvx.core.world_environment.WorldEnvironment.fog_height_density :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.fog_height_density ``` ```` ````{py:attribute} tonemap_mode :canonical: simvx.core.world_environment.WorldEnvironment.tonemap_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.tonemap_mode ``` ```` ````{py:attribute} tonemap_exposure :canonical: simvx.core.world_environment.WorldEnvironment.tonemap_exposure :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.tonemap_exposure ``` ```` ````{py:attribute} tonemap_white :canonical: simvx.core.world_environment.WorldEnvironment.tonemap_white :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.tonemap_white ``` ```` ````{py:attribute} bloom_enabled :canonical: simvx.core.world_environment.WorldEnvironment.bloom_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.bloom_enabled ``` ```` ````{py:attribute} bloom_threshold :canonical: simvx.core.world_environment.WorldEnvironment.bloom_threshold :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.bloom_threshold ``` ```` ````{py:attribute} bloom_intensity :canonical: simvx.core.world_environment.WorldEnvironment.bloom_intensity :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.bloom_intensity ``` ```` ````{py:attribute} volumetric_fog_enabled :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_enabled ``` ```` ````{py:attribute} volumetric_fog_density :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_density :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_density ``` ```` ````{py:attribute} volumetric_fog_albedo :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_albedo :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_albedo ``` ```` ````{py:attribute} volumetric_fog_emission :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_emission :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_emission ``` ```` ````{py:attribute} volumetric_fog_anisotropy :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_anisotropy :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_anisotropy ``` ```` ````{py:attribute} volumetric_fog_length :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_length :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_length ``` ```` ````{py:attribute} volumetric_fog_gi_inject :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_gi_inject :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_gi_inject ``` ```` ````{py:attribute} volumetric_fog_temporal_reprojection :canonical: simvx.core.world_environment.WorldEnvironment.volumetric_fog_temporal_reprojection :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.volumetric_fog_temporal_reprojection ``` ```` ````{py:attribute} ssao_enabled :canonical: simvx.core.world_environment.WorldEnvironment.ssao_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.ssao_enabled ``` ```` ````{py:attribute} dof_enabled :canonical: simvx.core.world_environment.WorldEnvironment.dof_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.dof_enabled ``` ```` ````{py:attribute} dof_focus_distance :canonical: simvx.core.world_environment.WorldEnvironment.dof_focus_distance :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.dof_focus_distance ``` ```` ````{py:attribute} dof_focus_range :canonical: simvx.core.world_environment.WorldEnvironment.dof_focus_range :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.dof_focus_range ``` ```` ````{py:attribute} motion_blur_enabled :canonical: simvx.core.world_environment.WorldEnvironment.motion_blur_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.motion_blur_enabled ``` ```` ````{py:attribute} motion_blur_intensity :canonical: simvx.core.world_environment.WorldEnvironment.motion_blur_intensity :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.motion_blur_intensity ``` ```` ````{py:attribute} motion_blur_samples :canonical: simvx.core.world_environment.WorldEnvironment.motion_blur_samples :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.motion_blur_samples ``` ```` ````{py:attribute} film_grain_enabled :canonical: simvx.core.world_environment.WorldEnvironment.film_grain_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.film_grain_enabled ``` ```` ````{py:attribute} film_grain_intensity :canonical: simvx.core.world_environment.WorldEnvironment.film_grain_intensity :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.film_grain_intensity ``` ```` ````{py:attribute} vignette_enabled :canonical: simvx.core.world_environment.WorldEnvironment.vignette_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.vignette_enabled ``` ```` ````{py:attribute} vignette_intensity :canonical: simvx.core.world_environment.WorldEnvironment.vignette_intensity :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.vignette_intensity ``` ```` ````{py:attribute} vignette_smoothness :canonical: simvx.core.world_environment.WorldEnvironment.vignette_smoothness :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.vignette_smoothness ``` ```` ````{py:attribute} chromatic_aberration_enabled :canonical: simvx.core.world_environment.WorldEnvironment.chromatic_aberration_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.chromatic_aberration_enabled ``` ```` ````{py:attribute} chromatic_aberration_intensity :canonical: simvx.core.world_environment.WorldEnvironment.chromatic_aberration_intensity :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.chromatic_aberration_intensity ``` ```` ````{py:attribute} colour_grading_enabled :canonical: simvx.core.world_environment.WorldEnvironment.colour_grading_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.colour_grading_enabled ``` ```` ````{py:attribute} sky_mode :canonical: simvx.core.world_environment.WorldEnvironment.sky_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.sky_mode ``` ```` ````{py:attribute} sky_colour_top :canonical: simvx.core.world_environment.WorldEnvironment.sky_colour_top :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.sky_colour_top ``` ```` ````{py:attribute} sky_colour_bottom :canonical: simvx.core.world_environment.WorldEnvironment.sky_colour_bottom :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.sky_colour_bottom ``` ```` ````{py:attribute} sky_texture :canonical: simvx.core.world_environment.WorldEnvironment.sky_texture :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.sky_texture ``` ```` ````{py:property} env_dirty :canonical: simvx.core.world_environment.WorldEnvironment.env_dirty :type: bool ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.env_dirty ``` ```` ````{py:method} clear_env_dirty() -> None :canonical: simvx.core.world_environment.WorldEnvironment.clear_env_dirty ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.clear_env_dirty ``` ```` ````{py:method} __setattr__(name: str, value: typing.Any) -> None :canonical: simvx.core.world_environment.WorldEnvironment.__setattr__ ```` ````{py:method} add_post_process(effect: simvx.core.world_environment.PostProcessEffect) -> None :canonical: simvx.core.world_environment.WorldEnvironment.add_post_process ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.add_post_process ``` ```` ````{py:method} remove_post_process(effect: simvx.core.world_environment.PostProcessEffect) -> None :canonical: simvx.core.world_environment.WorldEnvironment.remove_post_process ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.remove_post_process ``` ```` ````{py:method} get_post_processes() -> list[simvx.core.world_environment.PostProcessEffect] :canonical: simvx.core.world_environment.WorldEnvironment.get_post_processes ```{autodoc2-docstring} simvx.core.world_environment.WorldEnvironment.get_post_processes ``` ```` ````{py:attribute} strict_errors :canonical: simvx.core.world_environment.WorldEnvironment.strict_errors :type: typing.ClassVar[bool] :value: > True ```` ````{py:attribute} script_error_raised :canonical: simvx.core.world_environment.WorldEnvironment.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.world_environment.WorldEnvironment.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.world_environment.WorldEnvironment.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.world_environment.WorldEnvironment.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.world_environment.WorldEnvironment.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.world_environment.WorldEnvironment.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.world_environment.WorldEnvironment.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.world_environment.WorldEnvironment.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.world_environment.WorldEnvironment.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.world_environment.WorldEnvironment.find_child ```` ````{py:method} find(node_type: type, recursive: bool = True) -> simvx.core.node.Node | None :canonical: simvx.core.world_environment.WorldEnvironment.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.world_environment.WorldEnvironment.find_all ```` ````{py:property} path :canonical: simvx.core.world_environment.WorldEnvironment.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.world_environment.WorldEnvironment.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.world_environment.WorldEnvironment.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.world_environment.WorldEnvironment.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.world_environment.WorldEnvironment.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.world_environment.WorldEnvironment.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.world_environment.WorldEnvironment.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.world_environment.WorldEnvironment.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.world_environment.WorldEnvironment.physics_process ```` ````{py:method} draw(renderer) -> None :canonical: simvx.core.world_environment.WorldEnvironment.draw ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.world_environment.WorldEnvironment.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.world_environment.WorldEnvironment.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.world_environment.WorldEnvironment.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.world_environment.WorldEnvironment.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.world_environment.WorldEnvironment.stop_coroutine ```` ````{py:method} clear_children() :canonical: simvx.core.world_environment.WorldEnvironment.clear_children ```` ````{py:method} destroy() :canonical: simvx.core.world_environment.WorldEnvironment.destroy ```` ````{py:property} app :canonical: simvx.core.world_environment.WorldEnvironment.app ```` ````{py:property} tree :canonical: simvx.core.world_environment.WorldEnvironment.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.world_environment.WorldEnvironment.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.world_environment.WorldEnvironment.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.world_environment.WorldEnvironment.get_properties :classmethod: ```` ````{py:method} __repr__() :canonical: simvx.core.world_environment.WorldEnvironment.__repr__ ```` ````` `````{py:class} Environment() :canonical: simvx.core.world_environment.Environment ```{autodoc2-docstring} simvx.core.world_environment.Environment ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.world_environment.Environment.__init__ ``` ````{py:method} add_post_process(effect: simvx.core.world_environment.PostProcessEffect) -> None :canonical: simvx.core.world_environment.Environment.add_post_process ```{autodoc2-docstring} simvx.core.world_environment.Environment.add_post_process ``` ```` ````{py:method} remove_post_process(effect: simvx.core.world_environment.PostProcessEffect) -> None :canonical: simvx.core.world_environment.Environment.remove_post_process ```{autodoc2-docstring} simvx.core.world_environment.Environment.remove_post_process ``` ```` ````{py:method} get_post_processes() -> list[simvx.core.world_environment.PostProcessEffect] :canonical: simvx.core.world_environment.Environment.get_post_processes ```{autodoc2-docstring} simvx.core.world_environment.Environment.get_post_processes ``` ```` `````