[build-system] requires = ["setuptools", "numpy", "Cython"] build-backend = "setuptools.build_meta" [project] name = "infinigen" readme = "README.md" license = {file = "LICENSE"} dynamic = ["version"] description = "Infinite Photorealistic Worlds using Procedural Generation" keywords = [ "computer vision", "data generation", "procedural" ] classifiers = [ "Framework :: Blender", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10" ] requires-python = "==3.10.*" dependencies = [ "bpy==3.6.0", "frozendict", # TODO remove "geomdl", # used only for creatures "gin_config>=0.5.0", "gradio>=4.0.0", # for web interface "imageio", "matplotlib", "networkx", "numpy<2", "openai>=1.0.0", # for web interface "opencv-python", "pandas", "psutil", "python-dotenv>=1.0.0", # for web interface "pyyaml>=6.0", # for web interface "scikit-image", "scikit-learn", "scipy", "shapely", "submitit", "tqdm", "trimesh", # used by trimesh, we could specify "trimesh[easy]" but this brings more packages "python-fcl", "rtree", ] [project.optional-dependencies] terrain = [ "landlab==2.6.0", "pyrender", ] vis = [ "einops", "flow_vis", "numba", # for ground truth visuals "pyglet<2" # for trimesh_scene.show() ] dev = [ "pytest", "pytest-ordering", "pytest-cov", "pytest-xdist", "pytest-timeout", "pytype", "ruff", "isort", "tabulate", "rapidfuzz", "pre-commit" ] wandb = [ "wandb" ] [tool.setuptools] # include-package-data is terribly named. package-data is still included if false, # just not the package-data setuptools would otherwise autogenerate from MANIFEST.in or version control include-package-data = false [tool.setuptools.packages.find] include = ["infinigen*"] # must be specified as module paths with ., using classic filepaths with / will silently not do anything exclude = [ "infinigen.datagen.customgt.dependencies*", "infinigen.datagen.customgt.build*", ] [tool.setuptools.package-data] "*" = ["*.gin", "*.txt", "*.json"] # Must be specified as paths relative to infinigen/ "infinigen" = [ "terrain/**/*.soil", # extra files for SoilMachine "terrain/lib/**/*.so", # created by terrain compilation "terrain/lib/**/*.o", # created by terrain compilation "datagen/customgt/build/customgt", # created during opengl compilation "assets/objects/creatures/parts/nurbs_data/*.npy", # stores creature nurbs centroids data, ideally will be deprecated ] [tool.setuptools.dynamic] version = {attr = "infinigen.__version__"} [tool.pytest.ini_options] testpaths = "tests" junit_family = "xunit2" markers = ["nature", "indoors", "skip_for_ci"] timeout = 240 filterwarnings = [ "ignore:The value of the smallest subnormal for