1. 12 Aug, 2021 3 commits
    • Nikhila Ravi's avatar
      Ball Query · 103da633
      Nikhila Ravi authored
      Summary:
      Implementation of ball query from PointNet++.  This function is similar to KNN (find the neighbors in p2 for all points in p1). These are the key differences:
      -  It will return the **first** K neighbors within a specified radius as opposed to the **closest** K neighbors.
      - As all the points in p2 do not need to be considered to find the closest K, the algorithm is much faster than KNN when p2 has a large number of points.
      - The neighbors are not sorted
      - Due to the radius threshold it is not guaranteed that there will be K neighbors even if there are more than K points in p2.
      - The padding value for `idx` is -1 instead of 0.
      
      # Note:
      - Some of the code is very similar to KNN so it could be possible to modify the KNN forward kernels to support ball query.
      - Some users might want to use kNN with ball query - for this we could provide a wrapper function around the current `knn_points` which enables applying the radius threshold afterwards as an alternative. This could be called `ball_query_knn`.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D30261362
      
      fbshipit-source-id: 66b6a7e0114beff7164daf7eba21546ff41ec450
      103da633
    • Jeremy Reizenstein's avatar
      Test website metadata · e5c58a8a
      Jeremy Reizenstein authored
      Summary: New test that notes and tutorials are listed in the website metadata, so that they will be included in the website build.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30223799
      
      fbshipit-source-id: 2dca9730b54e68da2fd430a7b47cb7e18814d518
      e5c58a8a
    • Jeremy Reizenstein's avatar
      Add new doc and new tutorials to website · 64faedfd
      Jeremy Reizenstein authored
      Summary: Recent additions need to be included.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30223717
      
      fbshipit-source-id: 4b29a4132ea6fb7c1a530aac5d1e36aa61c663bb
      64faedfd
  2. 10 Aug, 2021 1 commit
  3. 09 Aug, 2021 1 commit
    • Nikhila Ravi's avatar
      Fix to allow cameras in the renderer forward pass · 80411783
      Nikhila Ravi authored
      Summary: Fix to resolve GitHub issue #796 - the cameras were being passed in the renderer forward pass instead of at initialization. The rasterizer was correctly using the cameras passed in the `kwargs` for the projection, but the `cameras` are still part of the `kwargs` for the `get_screen_to_ndc_transform` and `get_ndc_to_screen_transform` functions which is causing issues about duplicate arguments.
      
      Reviewed By: bottler
      
      Differential Revision: D30175679
      
      fbshipit-source-id: 547e88d8439456e728fa2772722df5fa0fe4584d
      80411783
  4. 03 Aug, 2021 5 commits
    • Jeremy Reizenstein's avatar
      version 0.5.0 · 4046677c
      Jeremy Reizenstein authored
      Summary: PyTorch3D version 0.5.0
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29538174
      
      fbshipit-source-id: 332516faa1d8e7bfa7c74ec3fecddc55439e2550
      4046677c
    • Jeremy Reizenstein's avatar
      update tutorials for new prebuilt version · addbe49d
      Jeremy Reizenstein authored
      Summary: At the next release, the prebuilt PyTorch3D wheels will depend on PyTorch 1.9.0. Update the tutorials to expect this.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29614450
      
      fbshipit-source-id: 39978a6a55b62fb7c7e62aaa8f138e47cadd631e
      addbe49d
    • Jeremy Reizenstein's avatar
      update INSTALL.md for next release · 4d2c0600
      Jeremy Reizenstein authored
      Summary: New Python, new PyTorches.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29538175
      
      fbshipit-source-id: f7086ef84a2993c760a1b1f668a3336e898c801e
      4d2c0600
    • Jeremy Reizenstein's avatar
      PyTorch 1.4 compat · 5ecce832
      Jeremy Reizenstein authored
      Summary: Restore compatibility with PyTorch 1.4 and 1.5, and a few lint fixes.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D30048115
      
      fbshipit-source-id: ee05efa7c625f6079fb06a3cc23be93e48df9433
      5ecce832
    • CodemodService Bot's avatar
      Daily `arc lint --take BLACK` · 55aaec4d
      CodemodService Bot authored
      Reviewed By: wynsmart
      
      Differential Revision: D30065248
      
      fbshipit-source-id: 600915ab43d3d6d4846f60f976391f9dc1d77d10
      55aaec4d
  5. 02 Aug, 2021 1 commit
    • Georgia Gkioxari's avatar
      NDC/screen cameras API fix, compatibility with renderer · 0c32f094
      Georgia Gkioxari authored
      Summary:
      API fix for NDC/screen cameras and compatibility with PyTorch3D renderers.
      
      With this new fix:
      * Users can define cameras and `transform_points` under any coordinate system conventions. The transformation applies the camera K and RT to the input points, not regarding for PyTorch3D conventions. So this makes cameras completely independent from PyTorch3D renderer.
      
      * Cameras can be defined either in NDC space or screen space. For existing ones, FoV cameras are in NDC space. Perspective/Orthographic can be defined in NDC or screen space.
      
      * The interface with PyTorch3D renderers happens through `transform_points_ndc` which transforms points to the NDC space and assumes that input points are provided according to PyTorch3D conventions.
      
      * Similarly, `transform_points_screen` transforms points to screen space and again assumes that input points are under PyTorch3D conventions.
      
      * For Orthographic/Perspective cameras, if they are defined in screen space, the `get_ndc_camera_transform` allows points to be converted to NDC for use for the renderers.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D26932657
      
      fbshipit-source-id: 1a964e3e7caa54d10c792cf39c4d527ba2fb2e79
      0c32f094
  6. 30 Jul, 2021 1 commit
    • Patrick Labatut's avatar
      Fix circular import · 9a14f54e
      Patrick Labatut authored
      Summary: This fixes a recently introduced circular import: the problem went unnoticed by having `pytorch3d.renderer` imported first...
      
      Reviewed By: bottler
      
      Differential Revision: D29686235
      
      fbshipit-source-id: 4b9f2faecec2cc8347ee259cfc359dc9e4f67784
      9a14f54e
  7. 28 Jul, 2021 1 commit
  8. 23 Jul, 2021 1 commit
    • Roman Shapovalov's avatar
      Improving RayBundle docstrings · e794d062
      Roman Shapovalov authored
      Summary: This changes only documentation. We want to be explicit that ray directions are not normalised (nor assumed to be normalised) but their magnitude is used.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29845210
      
      fbshipit-source-id: b81fb3da13a42ad20e8721ed5271fd4f3d8f5acb
      e794d062
  9. 19 Jul, 2021 3 commits
    • Jeremy Reizenstein's avatar
      path_manager in obj_io · 1872e024
      Jeremy Reizenstein authored
      Summary: Use PathManager for checking file existence, rather than assuming the path is a local file, in a couple of cases.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29734621
      
      fbshipit-source-id: e2236a7c2c50ba6916936a4d786abd601205b519
      1872e024
    • Jeremy Reizenstein's avatar
      restore build tests · 9e8d91eb
      Jeremy Reizenstein authored
      Summary: A bad env var check meant these tests were not being run. Fix that, and fix the copyright test for the new message format.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29734562
      
      fbshipit-source-id: a1a9bb68901b09c71c7b4ff81a04083febca8d50
      9e8d91eb
    • Alexey Sidnev's avatar
      Replace `torch.det()` with manual implementation for 3x3 matrix · bcee361d
      Alexey Sidnev authored
      Summary:
      # Background
      There is an unstable error during training (it can happen after several minutes or after several hours).
      The error is connected to `torch.det()` function in  `_check_valid_rotation_matrix()`.
      
      if I remove the function `torch.det()` in `_check_valid_rotation_matrix()` or remove the whole functions `_check_valid_rotation_matrix()` the error is disappeared (D29555876).
      
      # Solution
      Replace `torch.det()` with manual implementation for 3x3 matrix.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29655924
      
      fbshipit-source-id: 41bde1119274a705ab849751ece28873d2c45155
      bcee361d
  10. 16 Jul, 2021 1 commit
    • Alexey Sidnev's avatar
      Disable gradient calculation in `_check_valid_rotation_matrix()` · 2f668ece
      Alexey Sidnev authored
      Summary:
      # Make `transform3d.py` a little bit better (performance and code quality)
      
      ## 1. Add decorator `torch.no_grad()` to the function `_check_valid_rotation_matrix()`
      
      Function `_check_valid_rotation_matrix()` is needed to identify errors during forward pass only, it's not used for gradients.
      
      ## 2. Replace two calls `to` with the single one
      
      Reviewed By: bottler
      
      Differential Revision: D29656501
      
      fbshipit-source-id: 4419e24dbf436c1b60abf77bda4376fb87a593be
      2f668ece
  11. 13 Jul, 2021 1 commit
    • Roman Shapovalov's avatar
      Adding utility methods to TensorProperties · 0c02ae90
      Roman Shapovalov authored
      Summary:
      Context: in the code we are releasing with CO3D dataset, we use  `cuda()` on TensorProperties like Pointclouds and Cameras where we recursively move batch to a GPU. It would be good to push it to a release so we don’t need to depend on the nightly build.
      
      Additionally, I aligned the logic of `.to("cuda")` without device index to the one of `torch.Tensor` where the current device is populated to index. It should not affect any actual use cases but some tests had to be changed.
      
      Reviewed By: bottler
      
      Differential Revision: D29659529
      
      fbshipit-source-id: abe58aeaca14bacc68da3e6cf5ae07df3353e3ce
      0c02ae90
  12. 10 Jul, 2021 2 commits
  13. 09 Jul, 2021 1 commit
    • Patrick Labatut's avatar
      Use rotation matrices for OpenCV / PyTorch3D conversions · fef5bcd8
      Patrick Labatut authored
      Summary: Use rotation matrices for OpenCV / PyTorch3D conversions: this avoids hiding issues with conversions to / from axis-angle vectors and ensure new conversion functions have a consistent interface.
      
      Reviewed By: bottler, classner
      
      Differential Revision: D29634099
      
      fbshipit-source-id: 40b28357914eb563fedea60a965dcf69e848ccfa
      fef5bcd8
  14. 07 Jul, 2021 1 commit
  15. 06 Jul, 2021 1 commit
  16. 05 Jul, 2021 1 commit
    • Jeremy Reizenstein's avatar
      xcode update for mac builds · 68a35543
      Jeremy Reizenstein authored
      Summary: Avoid using old xcode which CircleCI say is deprecated.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29538176
      
      fbshipit-source-id: 1e2ae4845d42365c778536446958966bbecf188c
      68a35543
  17. 02 Jul, 2021 1 commit
    • David Novotny's avatar
      RayBundle visualization · 4426a9d1
      David Novotny authored
      Summary: Extends plotly_vis to visualize `RayBundle`s.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29014098
      
      fbshipit-source-id: 4dee426510a1fa53d4afefbe1bcdd003684c9932
      4426a9d1
  18. 01 Jul, 2021 2 commits
    • Jeremy Reizenstein's avatar
      points2volumes benchmark run alone · 62ff77b4
      Jeremy Reizenstein authored
      Summary: Enable this benchmark to be run on its own, like others.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29522846
      
      fbshipit-source-id: c7b3b5c9a0fcdeeb79d8b2ec197684b4380aa547
      62ff77b4
    • Jeremy Reizenstein's avatar
      lint fixes · 61754b2f
      Jeremy Reizenstein authored
      Summary: Fixing recent lint problems.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29522647
      
      fbshipit-source-id: 9bd89fbfa512ecd7359ec355cf12b16fb7024b47
      61754b2f
  19. 29 Jun, 2021 2 commits
  20. 28 Jun, 2021 2 commits
    • Jeremy Reizenstein's avatar
      work with old linalg · b8790474
      Jeremy Reizenstein authored
      Summary: solve and lstsq have moved around in torch. Cope with both.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29302316
      
      fbshipit-source-id: b34f0b923e90a357f20df359635929241eba6e74
      b8790474
    • Patrick Labatut's avatar
      Deprecate so3_exponential_map · 5284de6e
      Patrick Labatut authored
      Summary: Deprecate the `so3_exponential_map()` function in favor of its alias `so3_exp_map()`: this aligns with the naming of `so3_log_map()` and the recently introduced `se3_exp_map()` / `se3_log_map()` pair.
      
      Reviewed By: bottler
      
      Differential Revision: D29329966
      
      fbshipit-source-id: b6f60b9e86b2995f70b1fbeb16f9feea05c55de9
      5284de6e
  21. 26 Jun, 2021 1 commit
    • Patrick Labatut's avatar
      More type annotations · f593bfd3
      Patrick Labatut authored
      Summary: More type annotations: device, shaders, pluggable I/O, stats in NeRF project, cameras, textures, etc...
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29327396
      
      fbshipit-source-id: cdf0ceaaa010e22423088752688c8dd81f1acc3c
      f593bfd3
  22. 24 Jun, 2021 4 commits
    • Nikhila Ravi's avatar
      Save UV texture with obj mesh · 542e2e7c
      Nikhila Ravi authored
      Summary: Add functionality to to save an `.obj` file with associated UV textures: `.png` image and `.mtl` file as well as saving verts_uvs and faces_uvs to the `.obj` file.
      
      Reviewed By: bottler
      
      Differential Revision: D29337562
      
      fbshipit-source-id: 86829b40dae9224088b328e7f5a16eacf8582eb5
      542e2e7c
    • Patrick Labatut's avatar
      Annotate dunder functions · 64289a49
      Patrick Labatut authored
      Summary: Annotate the (return type of the) following dunder functions across the codebase: `__init__()`, `__len__()`, `__getitem__()`
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29001801
      
      fbshipit-source-id: 928d9e1c417ffe01ab8c0445311287786e997c7c
      64289a49
    • Pyre Bot Jr's avatar
      suppress errors in `vision/fair/pytorch3d` · 35855bf8
      Pyre Bot Jr authored
      Differential Revision: D29360359
      
      fbshipit-source-id: 9e91e8499a23e30a5fc39f8f6444b2db9f6b4142
      35855bf8
    • Georgia Gkioxari's avatar
      refactor laplacian matrices · 07a5a68d
      Georgia Gkioxari authored
      Summary:
      Refactor of all functions to compute laplacian matrices in one file.
      Support for:
      * Standard Laplacian
      * Cotangent Laplacian
      * Norm Laplacian
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29297466
      
      fbshipit-source-id: b96b88915ce8ef0c2f5693ec9b179fd27b70abf9
      07a5a68d
  23. 23 Jun, 2021 2 commits
    • Christoph Lassner's avatar
      Add PyTorch3D->OpenCV camera parameter conversion. · da9974b4
      Christoph Lassner authored
      Summary: This diff implements the inverse of D28992470 (https://github.com/facebookresearch/pytorch3d/commit/8006842f2a5ab1546a90797a6394f875adce045c): a function to extract OpenCV convention camera parameters from a PyTorch3D `PerspectiveCameras` object. This is the first part of the new PyTorch3d<>OpenCV<>Pulsar conversion functions.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D29278411
      
      fbshipit-source-id: 68d4555b508dbe8685d8239443f839d194cc2484
      da9974b4
    • Patrick Labatut's avatar
      Remove _C pyre fixmes · e4039aa5
      Patrick Labatut authored
      Summary:
      Get rid of pyre fixmes related to importing a native module:
      - add stub file for the `_C` native extension to the internal typeshed
      - add initial annotations to the new stub file
      - remove the now unnecessary pyre ignores
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D28929467
      
      fbshipit-source-id: 6525e15c8f27215a3ff6f78392925fd0ed6ec2ac
      e4039aa5
  24. 22 Jun, 2021 1 commit