diff --git a/examples/smoke.py b/examples/smoke.py index c84c452017..c1c7ac3c28 100644 --- a/examples/smoke.py +++ b/examples/smoke.py @@ -2,7 +2,7 @@ from pathlib import Path import numpy as np -import taichi as ti +import gstaichi as ti import cv2 import genesis as gs diff --git a/genesis/__init__.py b/genesis/__init__.py index f78fb73a92..6d9bc59f5f 100644 --- a/genesis/__init__.py +++ b/genesis/__init__.py @@ -8,13 +8,13 @@ from platform import system from contextlib import redirect_stdout -# Import taichi while collecting its output without printing directly +# Import gstaichi while collecting its output without printing directly _ti_outputs = io.StringIO() os.environ.setdefault("TI_ENABLE_PYBUF", "0" if sys.stdout is sys.__stdout__ else "1") with redirect_stdout(_ti_outputs): - import taichi as ti + import gstaichi as ti try: import torch @@ -211,7 +211,7 @@ def init( if (backend == gs_backend.metal) and (os.environ.get("TI_ENABLE_METAL") == "0"): ti_arch = TI_ARCH[platform][gs_backend.cpu] - # init taichi + # init gstaichi with redirect_stdout(_ti_outputs): ti.init( arch=ti_arch, @@ -230,7 +230,7 @@ def init( **taichi_kwargs, ) - # Make sure that taichi arch is matching requirement + # Make sure that gstaichi arch is matching requirement ti_runtime = ti.lang.impl.get_runtime() ti_arch = ti_runtime.prog.config().arch if backend != gs.cpu and ti_arch in (ti._lib.core.Arch.arm64, ti._lib.core.Arch.x64): @@ -297,7 +297,7 @@ def destroy(): del scene global_scene_list.clear() - # Reset taichi + # Reset gstaichi ti.reset() # Delete logger diff --git a/genesis/_main.py b/genesis/_main.py index 7bda1c1ed3..8cd30b467c 100644 --- a/genesis/_main.py +++ b/genesis/_main.py @@ -9,8 +9,8 @@ import numpy as np import torch -from taichi._lib import core as _ti_core -from taichi.lang import impl +from gstaichi._lib import core as _ti_core +from gstaichi.lang import impl import genesis as gs @@ -98,7 +98,7 @@ def get_motors_info(robot): def clean(): - print("Cleaned up all genesis and taichi cache files...") + print("Cleaned up all genesis and gstaichi cache files...") gs.utils.misc.clean_cache_files() _ti_core.clean_offline_cache_files(os.path.abspath(impl.default_cfg().offline_cache_file_path)) @@ -219,7 +219,7 @@ def main(): parser = argparse.ArgumentParser(description="Genesis CLI") subparsers = parser.add_subparsers(dest="command") - parser_clean = subparsers.add_parser("clean", help="Clean all the files cached by genesis and taichi") + parser_clean = subparsers.add_parser("clean", help="Clean all the files cached by genesis and gstaichi") parser_view = subparsers.add_parser("view", help="Visualize a given asset (mesh/URDF/MJCF)") parser_view.add_argument("filename", type=str, help="File to visualize") diff --git a/genesis/constants.py b/genesis/constants.py index 7c03df57d1..89bcd6ba6f 100644 --- a/genesis/constants.py +++ b/genesis/constants.py @@ -1,6 +1,6 @@ import enum -import taichi as ti +import gstaichi as ti # dynamic loading ACTIVE = 1 diff --git a/genesis/engine/boundaries/boundaries.py b/genesis/engine/boundaries/boundaries.py index a3dfbb7e31..b2f77a7915 100644 --- a/genesis/engine/boundaries/boundaries.py +++ b/genesis/engine/boundaries/boundaries.py @@ -1,7 +1,7 @@ import copy import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.utils.misc import * diff --git a/genesis/engine/bvh.py b/genesis/engine/bvh.py index 7e486d9515..30821c66fa 100644 --- a/genesis/engine/bvh.py +++ b/genesis/engine/bvh.py @@ -1,5 +1,5 @@ import genesis as gs -import taichi as ti +import gstaichi as ti from genesis.repr_base import RBC import numpy as np diff --git a/genesis/engine/couplers/legacy_coupler.py b/genesis/engine/couplers/legacy_coupler.py index 4ff560ae66..dcb5fdd1de 100644 --- a/genesis/engine/couplers/legacy_coupler.py +++ b/genesis/engine/couplers/legacy_coupler.py @@ -1,7 +1,7 @@ from typing import TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.options.solvers import LegacyCouplerOptions diff --git a/genesis/engine/couplers/sap_coupler.py b/genesis/engine/couplers/sap_coupler.py index 8d08f38133..b1c65ebe9e 100644 --- a/genesis/engine/couplers/sap_coupler.py +++ b/genesis/engine/couplers/sap_coupler.py @@ -2,7 +2,7 @@ import math import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.options.solvers import SAPCouplerOptions diff --git a/genesis/engine/entities/avatar_entity/avatar_entity.py b/genesis/engine/entities/avatar_entity/avatar_entity.py index e2883297c5..a115b6ff69 100644 --- a/genesis/engine/entities/avatar_entity/avatar_entity.py +++ b/genesis/engine/entities/avatar_entity/avatar_entity.py @@ -1,7 +1,7 @@ import numpy as np import numpy.typing as npt -import taichi as ti +import gstaichi as ti from ..rigid_entity import RigidEntity from .avatar_joint import AvatarJoint diff --git a/genesis/engine/entities/avatar_entity/avatar_geom.py b/genesis/engine/entities/avatar_entity/avatar_geom.py index 948c32148b..cfc0f8634c 100644 --- a/genesis/engine/entities/avatar_entity/avatar_geom.py +++ b/genesis/engine/entities/avatar_entity/avatar_geom.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from ..rigid_entity import RigidGeom, RigidVisGeom diff --git a/genesis/engine/entities/avatar_entity/avatar_joint.py b/genesis/engine/entities/avatar_entity/avatar_joint.py index 64e2591101..e66f6a3c84 100644 --- a/genesis/engine/entities/avatar_entity/avatar_joint.py +++ b/genesis/engine/entities/avatar_entity/avatar_joint.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from ..rigid_entity import RigidJoint diff --git a/genesis/engine/entities/avatar_entity/avatar_link.py b/genesis/engine/entities/avatar_entity/avatar_link.py index 43323dc427..cf59ba4ac2 100644 --- a/genesis/engine/entities/avatar_entity/avatar_link.py +++ b/genesis/engine/entities/avatar_entity/avatar_link.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from ..rigid_entity import RigidLink from .avatar_geom import AvatarGeom, AvatarVisGeom diff --git a/genesis/engine/entities/base_entity.py b/genesis/engine/entities/base_entity.py index 727caa3bf9..e49c2d5742 100644 --- a/genesis/engine/entities/base_entity.py +++ b/genesis/engine/entities/base_entity.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.repr_base import RBC diff --git a/genesis/engine/entities/drone_entity.py b/genesis/engine/entities/drone_entity.py index 71268ec10e..625117b8ba 100644 --- a/genesis/engine/entities/drone_entity.py +++ b/genesis/engine/entities/drone_entity.py @@ -2,7 +2,7 @@ import xml.etree.ElementTree as ET import torch -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.misc as mu diff --git a/genesis/engine/entities/emitter.py b/genesis/engine/entities/emitter.py index 2cd6822574..5a87af01b3 100644 --- a/genesis/engine/entities/emitter.py +++ b/genesis/engine/entities/emitter.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/entities/fem_entity.py b/genesis/engine/entities/fem_entity.py index 35c1ac3fe2..dd01ef230b 100644 --- a/genesis/engine/entities/fem_entity.py +++ b/genesis/engine/entities/fem_entity.py @@ -1,6 +1,6 @@ import igl import numpy as np -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/entities/hybrid_entity.py b/genesis/engine/entities/hybrid_entity.py index ebd4ea5a1b..1187884aba 100644 --- a/genesis/engine/entities/hybrid_entity.py +++ b/genesis/engine/entities/hybrid_entity.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import trimesh import genesis as gs diff --git a/genesis/engine/entities/mpm_entity.py b/genesis/engine/entities/mpm_entity.py index 7a5fbb6917..1d956bd15d 100644 --- a/genesis/engine/entities/mpm_entity.py +++ b/genesis/engine/entities/mpm_entity.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/entities/particle_entity.py b/genesis/engine/entities/particle_entity.py index 8879a8c557..62880517de 100644 --- a/genesis/engine/entities/particle_entity.py +++ b/genesis/engine/entities/particle_entity.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import torch import trimesh from scipy.spatial import KDTree diff --git a/genesis/engine/entities/pbd_entity.py b/genesis/engine/entities/pbd_entity.py index aac337889f..1aad578d87 100644 --- a/genesis/engine/entities/pbd_entity.py +++ b/genesis/engine/entities/pbd_entity.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti from scipy.spatial import KDTree import genesis as gs diff --git a/genesis/engine/entities/rigid_entity/rigid_entity.py b/genesis/engine/entities/rigid_entity/rigid_entity.py index fda3bb43c1..607a0cbd5b 100644 --- a/genesis/engine/entities/rigid_entity/rigid_entity.py +++ b/genesis/engine/entities/rigid_entity/rigid_entity.py @@ -3,7 +3,7 @@ from typing import Literal, TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import torch import trimesh diff --git a/genesis/engine/entities/rigid_entity/rigid_equality.py b/genesis/engine/entities/rigid_entity/rigid_equality.py index db0d1a2168..cab451a4e3 100644 --- a/genesis/engine/entities/rigid_entity/rigid_equality.py +++ b/genesis/engine/entities/rigid_entity/rigid_equality.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/entities/rigid_entity/rigid_geom.py b/genesis/engine/entities/rigid_entity/rigid_geom.py index 5bce714df7..61fcf3c3ed 100644 --- a/genesis/engine/entities/rigid_entity/rigid_geom.py +++ b/genesis/engine/entities/rigid_entity/rigid_geom.py @@ -6,7 +6,7 @@ import numpy as np from numpy.typing import NDArray import skimage -import taichi as ti +import gstaichi as ti import torch import trimesh diff --git a/genesis/engine/entities/rigid_entity/rigid_joint.py b/genesis/engine/entities/rigid_entity/rigid_joint.py index aad9aa8097..0bd47fcbbb 100644 --- a/genesis/engine/entities/rigid_entity/rigid_joint.py +++ b/genesis/engine/entities/rigid_entity/rigid_joint.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/entities/rigid_entity/rigid_link.py b/genesis/engine/entities/rigid_entity/rigid_link.py index c1acd6ba10..159b59fcce 100644 --- a/genesis/engine/entities/rigid_entity/rigid_link.py +++ b/genesis/engine/entities/rigid_entity/rigid_link.py @@ -1,9 +1,9 @@ from typing import TYPE_CHECKING +import gstaichi as ti import numpy as np -from numpy.typing import ArrayLike, NDArray -import taichi as ti import torch +from numpy.typing import ArrayLike import genesis as gs import trimesh diff --git a/genesis/engine/entities/sf_entity.py b/genesis/engine/entities/sf_entity.py index 5898445788..9135ce5fb9 100644 --- a/genesis/engine/entities/sf_entity.py +++ b/genesis/engine/entities/sf_entity.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti from scipy.spatial import KDTree import genesis as gs diff --git a/genesis/engine/entities/sph_entity.py b/genesis/engine/entities/sph_entity.py index b33993f226..91f4a3397d 100644 --- a/genesis/engine/entities/sph_entity.py +++ b/genesis/engine/entities/sph_entity.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.engine.states.entities import SPHEntityState diff --git a/genesis/engine/entities/tool_entity/mesh.py b/genesis/engine/entities/tool_entity/mesh.py index 618692356a..08a67c0446 100644 --- a/genesis/engine/entities/tool_entity/mesh.py +++ b/genesis/engine/entities/tool_entity/mesh.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/entities/tool_entity/tool_entity.py b/genesis/engine/entities/tool_entity/tool_entity.py index 0cc57b0748..9dc1297234 100644 --- a/genesis/engine/entities/tool_entity/tool_entity.py +++ b/genesis/engine/entities/tool_entity/tool_entity.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/force_fields.py b/genesis/engine/force_fields.py index b691edc5ee..9bd46a787d 100644 --- a/genesis/engine/force_fields.py +++ b/genesis/engine/force_fields.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.repr_base import RBC diff --git a/genesis/engine/materials/FEM/base.py b/genesis/engine/materials/FEM/base.py index b8f89fc044..80d3d6b41d 100644 --- a/genesis/engine/materials/FEM/base.py +++ b/genesis/engine/materials/FEM/base.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/FEM/elastic.py b/genesis/engine/materials/FEM/elastic.py index dc8428d598..b1d3a8e956 100644 --- a/genesis/engine/materials/FEM/elastic.py +++ b/genesis/engine/materials/FEM/elastic.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/FEM/muscle.py b/genesis/engine/materials/FEM/muscle.py index 2d7697b507..18a40190ae 100644 --- a/genesis/engine/materials/FEM/muscle.py +++ b/genesis/engine/materials/FEM/muscle.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs from .elastic import Elastic diff --git a/genesis/engine/materials/MPM/base.py b/genesis/engine/materials/MPM/base.py index 2218b90536..26e8749864 100644 --- a/genesis/engine/materials/MPM/base.py +++ b/genesis/engine/materials/MPM/base.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/MPM/elastic.py b/genesis/engine/materials/MPM/elastic.py index b1ecaf57cd..35266cc3bb 100644 --- a/genesis/engine/materials/MPM/elastic.py +++ b/genesis/engine/materials/MPM/elastic.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs @@ -12,8 +12,9 @@ class Elastic(Base): Note ---- - Reference for the default values of `E` and `nu`: https://github.com/taichi-dev/taichi_elements/blob/d19678869a28b09a32ef415b162e35dc929b792d/engine/mpm_solver.py#L201 Elastic objects is softened by multiplying the default E by 0.3. + Reference for the default values of `E` and `nu`: + https://github.com/taichi-dev/taichi_elements/blob/d19678869a28b09a32ef415b162e35dc929b792d/engine/mpm_solver.py#L201 Parameters ---------- diff --git a/genesis/engine/materials/MPM/elasto_plastic.py b/genesis/engine/materials/MPM/elasto_plastic.py index f618f8cf8b..3e23221e34 100644 --- a/genesis/engine/materials/MPM/elasto_plastic.py +++ b/genesis/engine/materials/MPM/elasto_plastic.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/MPM/liquid.py b/genesis/engine/materials/MPM/liquid.py index 89f2d33269..69fe3b4c83 100644 --- a/genesis/engine/materials/MPM/liquid.py +++ b/genesis/engine/materials/MPM/liquid.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/MPM/muscle.py b/genesis/engine/materials/MPM/muscle.py index 3e7b9a943d..631d3fd9db 100644 --- a/genesis/engine/materials/MPM/muscle.py +++ b/genesis/engine/materials/MPM/muscle.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/MPM/sand.py b/genesis/engine/materials/MPM/sand.py index bc22612f91..4de9a56451 100644 --- a/genesis/engine/materials/MPM/sand.py +++ b/genesis/engine/materials/MPM/sand.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/MPM/snow.py b/genesis/engine/materials/MPM/snow.py index 5296661dd3..122ecc3023 100644 --- a/genesis/engine/materials/MPM/snow.py +++ b/genesis/engine/materials/MPM/snow.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/PBD/base.py b/genesis/engine/materials/PBD/base.py index dcb3731621..04d33af773 100644 --- a/genesis/engine/materials/PBD/base.py +++ b/genesis/engine/materials/PBD/base.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti from ..base import Material diff --git a/genesis/engine/materials/PBD/cloth.py b/genesis/engine/materials/PBD/cloth.py index 4fb41d6644..aa9660e374 100644 --- a/genesis/engine/materials/PBD/cloth.py +++ b/genesis/engine/materials/PBD/cloth.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Base diff --git a/genesis/engine/materials/PBD/elastic.py b/genesis/engine/materials/PBD/elastic.py index e3a82d827e..a1bf7b349a 100644 --- a/genesis/engine/materials/PBD/elastic.py +++ b/genesis/engine/materials/PBD/elastic.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Base diff --git a/genesis/engine/materials/PBD/liquid.py b/genesis/engine/materials/PBD/liquid.py index 5ab41335bf..a7ed426da9 100644 --- a/genesis/engine/materials/PBD/liquid.py +++ b/genesis/engine/materials/PBD/liquid.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Base diff --git a/genesis/engine/materials/PBD/particle.py b/genesis/engine/materials/PBD/particle.py index f94b8b4c8d..c586f8bb77 100644 --- a/genesis/engine/materials/PBD/particle.py +++ b/genesis/engine/materials/PBD/particle.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Base diff --git a/genesis/engine/materials/SF/base.py b/genesis/engine/materials/SF/base.py index cb9d29dec8..25d6c5e050 100644 --- a/genesis/engine/materials/SF/base.py +++ b/genesis/engine/materials/SF/base.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti from ..base import Material diff --git a/genesis/engine/materials/SF/smoke.py b/genesis/engine/materials/SF/smoke.py index ef9f519fc2..5a24ce5f19 100644 --- a/genesis/engine/materials/SF/smoke.py +++ b/genesis/engine/materials/SF/smoke.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Base diff --git a/genesis/engine/materials/SPH/base.py b/genesis/engine/materials/SPH/base.py index 9bb8e04106..a1a881adbf 100644 --- a/genesis/engine/materials/SPH/base.py +++ b/genesis/engine/materials/SPH/base.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from ..base import Material diff --git a/genesis/engine/materials/SPH/liquid.py b/genesis/engine/materials/SPH/liquid.py index a01b757332..0fa5e5ba20 100644 --- a/genesis/engine/materials/SPH/liquid.py +++ b/genesis/engine/materials/SPH/liquid.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Base diff --git a/genesis/engine/materials/avatar.py b/genesis/engine/materials/avatar.py index dc0a4ba12a..80b45c1681 100644 --- a/genesis/engine/materials/avatar.py +++ b/genesis/engine/materials/avatar.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .rigid import Rigid diff --git a/genesis/engine/materials/base.py b/genesis/engine/materials/base.py index d9ebd9e2e9..d0bb86207a 100644 --- a/genesis/engine/materials/base.py +++ b/genesis/engine/materials/base.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.repr_base import RBC diff --git a/genesis/engine/materials/hybrid.py b/genesis/engine/materials/hybrid.py index 1c71491a92..41beba9e9b 100644 --- a/genesis/engine/materials/hybrid.py +++ b/genesis/engine/materials/hybrid.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Material diff --git a/genesis/engine/materials/rigid.py b/genesis/engine/materials/rigid.py index a41bcd9d6d..0d5881bbb5 100644 --- a/genesis/engine/materials/rigid.py +++ b/genesis/engine/materials/rigid.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/engine/materials/tool.py b/genesis/engine/materials/tool.py index 6cb541f038..f986db9732 100644 --- a/genesis/engine/materials/tool.py +++ b/genesis/engine/materials/tool.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti from .base import Material diff --git a/genesis/engine/scene.py b/genesis/engine/scene.py index a15e66088d..9a22c3864c 100644 --- a/genesis/engine/scene.py +++ b/genesis/engine/scene.py @@ -6,7 +6,7 @@ import numpy as np import torch -import taichi as ti +import gstaichi as ti from numpy.typing import ArrayLike import genesis as gs diff --git a/genesis/engine/simulator.py b/genesis/engine/simulator.py index e6c0e66ad2..c69a3a8ab1 100644 --- a/genesis/engine/simulator.py +++ b/genesis/engine/simulator.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.engine.entities.base_entity import Entity diff --git a/genesis/engine/solvers/avatar_solver.py b/genesis/engine/solvers/avatar_solver.py index b926805417..4d17006eef 100644 --- a/genesis/engine/solvers/avatar_solver.py +++ b/genesis/engine/solvers/avatar_solver.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.engine.entities import AvatarEntity from genesis.engine.states.solvers import AvatarSolverState diff --git a/genesis/engine/solvers/base_solver.py b/genesis/engine/solvers/base_solver.py index 8a6bfceee5..b2a1164d09 100644 --- a/genesis/engine/solvers/base_solver.py +++ b/genesis/engine/solvers/base_solver.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import torch from genesis.utils.misc import ti_field_to_torch diff --git a/genesis/engine/solvers/fem_solver.py b/genesis/engine/solvers/fem_solver.py index e27727739c..92486a2eed 100644 --- a/genesis/engine/solvers/fem_solver.py +++ b/genesis/engine/solvers/fem_solver.py @@ -2,7 +2,7 @@ import numpy as np import igl -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/solvers/mpm_solver.py b/genesis/engine/solvers/mpm_solver.py index 19cfb68383..10406fe799 100644 --- a/genesis/engine/solvers/mpm_solver.py +++ b/genesis/engine/solvers/mpm_solver.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import torch import genesis as gs @@ -225,7 +225,7 @@ def build(self): for entity in self._entities: entity._add_to_solver() - # reference: https://github.com/taichi-dev/taichi_elements/blob/d19678869a28b09a32ef415b162e35dc929b792d/engine/mpm_solver.py#L84 + # See: https://github.com/taichi-dev/taichi_elements/blob/d19678869a28b09a32ef415b162e35dc929b792d/engine/mpm_solver.py#L84 suggested_dt = 2e-2 * self._dx if self.substep_dt > suggested_dt: gs.logger.warning( @@ -338,7 +338,8 @@ def stencil_range(self): def p2g(self, f: ti.i32): for i_p, i_b in ti.ndrange(self._n_particles, self._B): if self.particles_ng[f, i_p, i_b].active: - # A. update F (deformation gradient), S (Sigma from SVD(F), essentially represents volume) and Jp (volume compression ratio) based on material type + # A. update F (deformation gradient), S (Sigma from SVD(F), essentially represents volume) and Jp + # (volume compression ratio) based on material type J = self.particles[f, i_p, i_b].S.determinant() F_new = ti.Matrix.zero(gs.ti_float, 3, 3) S_new = ti.Matrix.zero(gs.ti_float, 3, 3) @@ -358,7 +359,11 @@ def p2g(self, f: ti.i32): # B. compute stress # NOTE: - # 1. Here we pass in both F_tmp and the updated F_new because in the official taichi example, F_new is used for stress computation. However, although this works for both elastic and elasto-plastic materials, it is mathematically incorrect for liquid material with non-zero viscosity (mu). In the latter case, stress computation needs to be based on the F_tmp (deformation gradient before resetting to identity). + # 1. Here we pass in both F_tmp and the updated F_new because in the official taichi example, F_new is + # used for stress computation. However, although this works for both elastic and elasto-plastic + # materials, it is mathematically incorrect for liquid material with non-zero viscosity (mu). In the + # latter case, stress computation needs to be based on the F_tmp (deformation gradient before resetting + # to identity). # 2. Jp is only used by Snow material, and it uses Jp from the previous frame, not the updated one. stress = ti.Matrix.zero(gs.ti_float, 3, 3) for mat_idx in ti.static(self._mats_idx): diff --git a/genesis/engine/solvers/pbd_solver.py b/genesis/engine/solvers/pbd_solver.py index 681f99225d..97344a114a 100644 --- a/genesis/engine/solvers/pbd_solver.py +++ b/genesis/engine/solvers/pbd_solver.py @@ -1,7 +1,7 @@ import math import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/solvers/rigid/collider_decomp.py b/genesis/engine/solvers/rigid/collider_decomp.py index 8edea10e2d..30253fbb25 100644 --- a/genesis/engine/solvers/rigid/collider_decomp.py +++ b/genesis/engine/solvers/rigid/collider_decomp.py @@ -6,7 +6,7 @@ import numpy.typing as npt import torch -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu @@ -1118,7 +1118,7 @@ def func_broad_phase( geoms_info: array_class.GeomsInfo, rigid_global_info: array_class.RigidGlobalInfo, static_rigid_sim_config: ti.template(), - # we will use ColliderBroadPhaseBuffer as typing after Hugh adds array_struct feature to taichi + # we will use ColliderBroadPhaseBuffer as typing after Hugh adds array_struct feature to gstaichi collider_state: array_class.ColliderState, collider_info: array_class.ColliderInfo, ): diff --git a/genesis/engine/solvers/rigid/constraint_solver_decomp.py b/genesis/engine/solvers/rigid/constraint_solver_decomp.py index df50380f33..7e6359f938 100644 --- a/genesis/engine/solvers/rigid/constraint_solver_decomp.py +++ b/genesis/engine/solvers/rigid/constraint_solver_decomp.py @@ -2,7 +2,7 @@ import numpy as np import numpy.typing as npt -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/engine/solvers/rigid/constraint_solver_decomp_island.py b/genesis/engine/solvers/rigid/constraint_solver_decomp_island.py index 3831ecb28a..d4017a0fd2 100644 --- a/genesis/engine/solvers/rigid/constraint_solver_decomp_island.py +++ b/genesis/engine/solvers/rigid/constraint_solver_decomp_island.py @@ -1,7 +1,7 @@ from typing import TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/solvers/rigid/contact_island.py b/genesis/engine/solvers/rigid/contact_island.py index 323a8396eb..91527a11bc 100644 --- a/genesis/engine/solvers/rigid/contact_island.py +++ b/genesis/engine/solvers/rigid/contact_island.py @@ -1,7 +1,7 @@ from typing import TYPE_CHECKING import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/solvers/rigid/gjk_decomp.py b/genesis/engine/solvers/rigid/gjk_decomp.py index 8b102f8606..d0dcc6dbfd 100644 --- a/genesis/engine/solvers/rigid/gjk_decomp.py +++ b/genesis/engine/solvers/rigid/gjk_decomp.py @@ -1,5 +1,5 @@ from enum import IntEnum -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu import genesis.utils.array_class as array_class diff --git a/genesis/engine/solvers/rigid/mpr_decomp.py b/genesis/engine/solvers/rigid/mpr_decomp.py index 13a9d4a99b..c10dad24f6 100644 --- a/genesis/engine/solvers/rigid/mpr_decomp.py +++ b/genesis/engine/solvers/rigid/mpr_decomp.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import torch from dataclasses import dataclass diff --git a/genesis/engine/solvers/rigid/rigid_solver_decomp.py b/genesis/engine/solvers/rigid/rigid_solver_decomp.py index 8597ed9664..3f125519fd 100644 --- a/genesis/engine/solvers/rigid/rigid_solver_decomp.py +++ b/genesis/engine/solvers/rigid/rigid_solver_decomp.py @@ -1,9 +1,9 @@ from dataclasses import dataclass from typing import Literal, TYPE_CHECKING +import gstaichi as ti import numpy as np import numpy.typing as npt -import taichi as ti import torch import genesis as gs @@ -2597,7 +2597,7 @@ def kernel_init_dof_fields( # taichi variables dofs_info: array_class.DofsInfo, dofs_state: array_class.DofsState, - # we will use RigidGlobalInfo as typing after Hugh adds array_struct feature to taichi + # we will use RigidGlobalInfo as typing after Hugh adds array_struct feature to gstaichi rigid_global_info: array_class.RigidGlobalInfo, static_rigid_sim_config: ti.template(), ): diff --git a/genesis/engine/solvers/rigid/rigid_solver_decomp_util.py b/genesis/engine/solvers/rigid/rigid_solver_decomp_util.py index 8545b5aecc..45027fbad3 100644 --- a/genesis/engine/solvers/rigid/rigid_solver_decomp_util.py +++ b/genesis/engine/solvers/rigid/rigid_solver_decomp_util.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis.utils.array_class as array_class diff --git a/genesis/engine/solvers/rigid/support_field_decomp.py b/genesis/engine/solvers/rigid/support_field_decomp.py index a9aeb77f54..25a13c8669 100644 --- a/genesis/engine/solvers/rigid/support_field_decomp.py +++ b/genesis/engine/solvers/rigid/support_field_decomp.py @@ -3,7 +3,7 @@ from dataclasses import dataclass import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/solvers/sf_solver.py b/genesis/engine/solvers/sf_solver.py index dc39abae1e..fc15bc8456 100644 --- a/genesis/engine/solvers/sf_solver.py +++ b/genesis/engine/solvers/sf_solver.py @@ -1,6 +1,6 @@ import math import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/solvers/sph_solver.py b/genesis/engine/solvers/sph_solver.py index 88fd10a09d..2b73bdaa9a 100644 --- a/genesis/engine/solvers/sph_solver.py +++ b/genesis/engine/solvers/sph_solver.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/engine/solvers/tool_solver.py b/genesis/engine/solvers/tool_solver.py index b41f59d58e..b81b50ed2c 100644 --- a/genesis/engine/solvers/tool_solver.py +++ b/genesis/engine/solvers/tool_solver.py @@ -1,5 +1,5 @@ from typing import TYPE_CHECKING -import taichi as ti +import gstaichi as ti from genesis.engine.boundaries import FloorBoundary from genesis.engine.states.solvers import ToolSolverState diff --git a/genesis/sensors/base_sensor.py b/genesis/sensors/base_sensor.py index 301994a11c..d616696450 100644 --- a/genesis/sensors/base_sensor.py +++ b/genesis/sensors/base_sensor.py @@ -1,8 +1,8 @@ from dataclasses import dataclass, field from typing import TYPE_CHECKING, Any, List +import gstaichi as ti import numpy as np -import taichi as ti import torch import genesis as gs diff --git a/genesis/sensors/imu.py b/genesis/sensors/imu.py index c7f807397c..e098614794 100644 --- a/genesis/sensors/imu.py +++ b/genesis/sensors/imu.py @@ -1,7 +1,7 @@ from dataclasses import dataclass, field from typing import TYPE_CHECKING, Any -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/sensors/tactile.py b/genesis/sensors/tactile.py index 484033d980..8c5ee9941b 100644 --- a/genesis/sensors/tactile.py +++ b/genesis/sensors/tactile.py @@ -1,7 +1,7 @@ from typing import Any, Dict, List, Optional import numpy as np -import taichi as ti +import gstaichi as ti import torch import genesis as gs diff --git a/genesis/utils/array_class.py b/genesis/utils/array_class.py index 56ec37ba15..2b134fb075 100644 --- a/genesis/utils/array_class.py +++ b/genesis/utils/array_class.py @@ -4,7 +4,7 @@ import inspect from typing import Any, Type, cast -import taichi as ti +import gstaichi as ti import genesis as gs import numpy as np @@ -1953,7 +1953,7 @@ def __init__(self, solver): self.entities_state = get_entities_state(solver) -# we will use struct for DofsState and DofsInfo after Hugh adds array_struct feature to taichi +# we will use struct for DofsState and DofsInfo after Hugh adds array_struct feature to gstaichi DofsState = ti.template() if not use_ndarray else StructDofsState DofsInfo = ti.template() if not use_ndarray else StructDofsInfo GeomsState = ti.template() if not use_ndarray else StructGeomsState diff --git a/genesis/utils/bvh.py b/genesis/utils/bvh.py index 999e178f36..d73561cf7e 100644 --- a/genesis/utils/bvh.py +++ b/genesis/utils/bvh.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs from genesis.styles import colors, formats diff --git a/genesis/utils/geom.py b/genesis/utils/geom.py index 23c30fed3f..0a96dd650a 100644 --- a/genesis/utils/geom.py +++ b/genesis/utils/geom.py @@ -5,7 +5,7 @@ import torch import torch.nn.functional as F -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/utils/linalg.py b/genesis/utils/linalg.py index bf298ba869..ae50e7036b 100644 --- a/genesis/utils/linalg.py +++ b/genesis/utils/linalg.py @@ -1,4 +1,4 @@ -import taichi as ti +import gstaichi as ti import genesis as gs diff --git a/genesis/utils/misc.py b/genesis/utils/misc.py index 1b9777122f..065cfc6ab4 100644 --- a/genesis/utils/misc.py +++ b/genesis/utils/misc.py @@ -17,12 +17,12 @@ import psutil import torch -import taichi as ti -from taichi.lang.util import to_pytorch_type -from taichi._kernels import tensor_to_ext_arr, matrix_to_ext_arr -from taichi.lang import impl -from taichi.types import primitive_types -from taichi.lang.exception import handle_exception_from_cpp +import gstaichi as ti +from gstaichi.lang.util import to_pytorch_type +from gstaichi._kernels import tensor_to_ext_arr, matrix_to_ext_arr +from gstaichi.lang import impl +from gstaichi.types import primitive_types +from gstaichi.lang.exception import handle_exception_from_cpp import genesis as gs from genesis.constants import backend as gs_backend diff --git a/genesis/utils/path_planing.py b/genesis/utils/path_planing.py index 985960eb28..33c1ab5672 100644 --- a/genesis/utils/path_planing.py +++ b/genesis/utils/path_planing.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod import time -import taichi as ti +import gstaichi as ti import torch import torch.nn.functional as F diff --git a/genesis/utils/sdf_decomp.py b/genesis/utils/sdf_decomp.py index 39e8dbbf8f..8f8499e546 100644 --- a/genesis/utils/sdf_decomp.py +++ b/genesis/utils/sdf_decomp.py @@ -1,5 +1,5 @@ import numpy as np -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/genesis/utils/tools.py b/genesis/utils/tools.py index fdfc951fa4..f3dcb4036d 100644 --- a/genesis/utils/tools.py +++ b/genesis/utils/tools.py @@ -4,7 +4,7 @@ import time import numpy as np -import taichi as ti +import gstaichi as ti from PIL import Image import genesis as gs diff --git a/genesis/vis/rasterizer_context.py b/genesis/vis/rasterizer_context.py index e30ad5470a..5c712c77bf 100644 --- a/genesis/vis/rasterizer_context.py +++ b/genesis/vis/rasterizer_context.py @@ -1,7 +1,7 @@ import numpy as np import trimesh -import taichi as ti +import gstaichi as ti import genesis as gs import genesis.utils.geom as gu diff --git a/pyproject.toml b/pyproject.toml index 5cb67bb642..633d1ab8f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,8 +10,7 @@ readme = "README.md" requires-python = ">=3.10,<3.14" dependencies = [ "psutil", - # Taichi debug mode has been fixed in 1.7.4 - "taichi >= 1.7.4", + "gstaichi == 1.0.1", "pydantic >= 2.7.1", "numpy >= 1.26.4", "trimesh", diff --git a/tests/conftest.py b/tests/conftest.py index a6578f1897..0092a98175 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -290,7 +290,7 @@ def taichi_offline_cache(request): @pytest.fixture(scope="function", autouse=True) def initialize_genesis(request, backend, precision, taichi_offline_cache): import pyglet - import taichi as ti + import gstaichi as ti import genesis as gs from genesis.utils.misc import ALLOCATE_TENSOR_WARNING diff --git a/tests/test_bvh.py b/tests/test_bvh.py index 67b962a24a..91827e767f 100644 --- a/tests/test_bvh.py +++ b/tests/test_bvh.py @@ -1,5 +1,5 @@ import torch -import taichi as ti +import gstaichi as ti import numpy as np import pytest @@ -44,7 +44,7 @@ def test_expand_bits(): Test the expand_bits function for LBVH. A 10-bit integer is expanded to a 30-bit integer by inserting two zeros before each bit. """ - import taichi as ti + import gstaichi as ti @ti.kernel def expand_bits(lbvh: ti.template(), x: ti.template(), expanded_x: ti.template()): diff --git a/tests/test_utils.py b/tests/test_utils.py index b92263d7c4..ab24348378 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -61,7 +61,7 @@ def test_warn_once_with_empty_message(clear_seen_fixture): def _ti_kernel_wrapper(ti_func, num_inputs, num_outputs): - import taichi as ti + import gstaichi as ti if num_inputs == 1 and num_outputs == 1: @@ -111,7 +111,7 @@ def kernel( @pytest.mark.required @pytest.mark.parametrize("batch_shape", [(10, 40, 25), ()]) def test_utils_geom_taichi_vs_tensor_consistency(batch_shape): - import taichi as ti + import gstaichi as ti for ti_func, py_func, shapes_in, shapes_out in ( (gu.ti_xyz_to_quat, gu.xyz_to_quat, [[3]], [[4]]), @@ -200,7 +200,7 @@ def test_utils_geom_numpy_vs_tensor_consistency(batch_shape, tol): @pytest.mark.required @pytest.mark.parametrize("batch_shape", [(10, 40, 25), ()]) def test_utils_geom_taichi_inverse(batch_shape): - import taichi as ti + import gstaichi as ti for ti_func, ti_func_inv, shapes_value_args, shapes_transform_args in ( (gu.ti_transform_by_T, gu.ti_inv_transform_by_T, [[3]], [[4, 4]]), @@ -246,7 +246,7 @@ def test_utils_geom_taichi_inverse(batch_shape): @pytest.mark.required @pytest.mark.parametrize("batch_shape", [(10, 40, 25), ()]) def test_utils_geom_taichi_identity(batch_shape): - import taichi as ti + import gstaichi as ti for ti_funcs, shape_args in ( ((gu.ti_xyz_to_quat, gu.ti_quat_to_xyz), ([3], [4])), @@ -272,7 +272,7 @@ def test_utils_geom_taichi_identity(batch_shape): @pytest.mark.required @pytest.mark.parametrize("batch_shape", [(10, 40, 25), ()]) def test_utils_geom_tensor_identity(batch_shape): - import taichi as ti + import gstaichi as ti for py_funcs, shape_args in ( ((gu.R_to_rot6d, gu.rot6d_to_R), ([3, 3], [6])),