diff --git a/flake.lock b/flake.lock index 85a3495..522d98d 100644 --- a/flake.lock +++ b/flake.lock @@ -4,6 +4,24 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1689068808, "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", @@ -18,31 +36,13 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1690924695, - "narHash": "sha256-1yshNzds/qJztMoJk0Sa2xhKwSLaOAuepR6ABWbrgRU=", + "lastModified": 1695298503, + "narHash": "sha256-eDuN/+479v5gfVqwmJRYVX/Skh+TYSifAXdJ9xMqiP4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7282565b1ca9ba7b293b899411e70167f4a7c1ff", + "rev": "b1370f72c01cee73c8648baf158453d60f3127e2", "type": "github" }, "original": { @@ -54,11 +54,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1687112859, - "narHash": "sha256-oJhMiKnJeb47gTxyyIgAJf+aWC4IbVmG3wgL3ZVJ0Eg=", + "lastModified": 1691006197, + "narHash": "sha256-DbtxVWPt+ZP5W0Usg7jAyTomIM//c3Jtfa59Ht7AV8s=", "owner": "lopsided98", "repo": "nixpkgs", - "rev": "f68a0d0fd7539d93c7454989f71fd1c824f3b46f", + "rev": "66aedfd010204949cb225cf749be08cb13ce1813", "type": "github" }, "original": { @@ -81,11 +81,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1690347395, - "narHash": "sha256-FUAvjcpVyDMZ2zCqUrpGlLtRZlF3PqW2alpyi82bMa8=", + "lastModified": 1691109346, + "narHash": "sha256-TtmW6aWNITZDpmwTZhTka7DnT1b6FdgY0sgcT8s6tRg=", "owner": "lopsided98", "repo": "nix-ros-overlay", - "rev": "3205dadcff4e1fbc779ce3962bafcf3e9f3e931b", + "rev": "c89eed8b34d2947c851df29c09c1cb444282b63e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index f11e76e..b8965d3 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,21 @@ # freecad = prev.freecad.overrideAttrs # (old: { cmakeFlags = old.cmakeFlags ++ [ "-DBUILD_GUI=OFF" ]; }); # cmakeFlag -BUILD_GUI=OFF for build without gui + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + ( + python-final: python-prev: { + iopath = python-prev.iopath.overridePythonAttrs (oldAttrs: { + version = "unstable"; + src = pkgs.fetchFromGitHub { + owner = "facebookresearch"; + repo = "iopath"; + rev = "9dcb63a46447556460fdb65c21aa6d094a7a788c"; + hash = "sha256-X1LTOfbIAMy6gToNYS0JpeJpHi0jHPsEjrnCq2c9U0E="; + }; + }); + } + ) + ]; }; # overrided packages and attributes for nix-ros-overlay @@ -38,17 +53,18 @@ blender = pkgs.callPackage ./pkgs/misc/blender { }; bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { }; pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { }; + pytorch3d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pytorch3d { }; mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { }; darknet = pkgs.callPackage ./pkgs/misc/darknet { }; fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { }; - open3d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/open3d { }; + open3d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/open3d { }; unified-planning = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/unified-planning { }; blenderproc = pkgs.python3Packages.callPackage ./blenderproc.nix { }; test-script = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/test-script { }; webdataset = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/webdataset { }; ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { }; - megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { webdataset = webdataset; }; - spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { ansitable = ansitable; }; + megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { inherit webdataset; }; + spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { inherit ansitable; }; slic3r = pkgs.callPackage ./pkgs/misc/slic3r { }; in { @@ -62,7 +78,7 @@ }; packages = { - inherit mayo blender bpy pysdf fstl darknet unified-planning slic3r megapose6d test-script; + inherit mayo blender bpy pysdf fstl unified-planning slic3r megapose6d test-script pytorch3d; gazebo = ros.humble.gazebo; }; @@ -108,6 +124,20 @@ packages = [ mayo blender bpy pysdf fstl darknet slic3r ]; }; + devShells.perception = + let + rbs-packages = p: with p; [ + pytorch3d + torch + torchvision + torchaudio + detectron2 + ]; + in + pkgs.mkShell { + packages = [ (pkgs.python3.withPackages rbs-packages) ]; + }; + devShells.default = let my-python-packages = p: with p; [ diff --git a/pkgs/development/python-modules/pytorch3d/default.nix b/pkgs/development/python-modules/pytorch3d/default.nix new file mode 100644 index 0000000..4f17ed4 --- /dev/null +++ b/pkgs/development/python-modules/pytorch3d/default.nix @@ -0,0 +1,72 @@ +{ lib +, pkgs +, buildPythonPackage +, fetchFromGitHub +, torch +, fvcore +, pyopengl +, pyopengl-accelerate +, pybind11 +, python3 +, scikit-image +, black +, usort +, flake8 +, matplotlib +, tqdm +, jupyter +, imageio +, plotly +, opencv +, iopath +, ninja +}: +buildPythonPackage rec { + pname = "pytorch3d"; + version = "0.7.3"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "facebookresearch"; + repo = "pytorch3d"; + rev = "v${version}"; + hash = "sha256-lI3z4Z7j4zJNSXsqueBQqBe8gslmLJRjW4DM8CQ9A0A="; + }; + + preBuild = '' + export MAX_JOBS=$NIX_BUILD_CORES; + ''; + + nativeBuildInputs = with pkgs; [ which pybind11 ninja ]; + + propagatedBuildInputs = [ + torch + fvcore + iopath + pyopengl + pyopengl-accelerate + pybind11 + scikit-image + black + usort + flake8 + matplotlib + tqdm + jupyter + imageio + plotly + opencv + ]; + + pythonImportsCheck = [ "pytorch3d" ]; + doCheck = false; + + enableParallelBuilding = true; + + meta = with lib; { + description = "PyTorch3D is FAIR's library of reusable components for deep learning with 3D data"; + homepage = "https://github.com/facebookresearch/pytorch3d"; + license = licenses.bsd3; + maintainers = with maintainers; [ ]; + }; +}