"vscode:/vscode.git/clone" did not exist on "e92334255e48b557e699e94b2d560bf0d88f6e7c"
  1. 15 Jun, 2022 1 commit
  2. 26 May, 2022 1 commit
    • Jeremy Reizenstein's avatar
      chamfer for empty pointclouds #1174 · c6519f29
      Jeremy Reizenstein authored
      Summary: Fix divide by zero for empty pointcloud in chamfer. Also for empty batches. In process, needed to regularize num_points_per_cloud for empty batches.
      
      Reviewed By: kjchalup
      
      Differential Revision: D36311330
      
      fbshipit-source-id: 3378ab738bee77ecc286f2110a5c8dc445960340
      c6519f29
  3. 13 Apr, 2022 1 commit
    • Tim Hatch's avatar
      apply import merging for fbcode/vision/fair (2 of 2) · 34bbb3ad
      Tim Hatch authored
      Summary:
      Applies new import merging and sorting from µsort v1.0.
      
      When merging imports, µsort will make a best-effort to move associated
      comments to match merged elements, but there are known limitations due to
      the diynamic nature of Python and developer tooling. These changes should
      not produce any dangerous runtime changes, but may require touch-ups to
      satisfy linters and other tooling.
      
      Note that µsort uses case-insensitive, lexicographical sorting, which
      results in a different ordering compared to isort. This provides a more
      consistent sorting order, matching the case-insensitive order used when
      sorting import statements by module name, and ensures that "frog", "FROG",
      and "Frog" always sort next to each other.
      
      For details on µsort's sorting and merging semantics, see the user guide:
      https://usort.readthedocs.io/en/stable/guide.html#sorting
      
      Reviewed By: bottler
      
      Differential Revision: D35553814
      
      fbshipit-source-id: be49bdb6a4c25264ff8d4db3a601f18736d17be1
      34bbb3ad
  4. 11 Apr, 2022 3 commits
    • Krzysztof Chalupka's avatar
      Submesh 4/n: TexturesVertex submeshing · 22f86072
      Krzysztof Chalupka authored
      Summary: Add submeshing capability for meshes with TexturesVertex.
      
      Reviewed By: bottler
      
      Differential Revision: D35448534
      
      fbshipit-source-id: 6d16a31a5bfb24ce122cf3c300a7616bc58353d1
      22f86072
    • Krzysztof Chalupka's avatar
      Submesh 3/n: Add submeshing functionality · 050f650a
      Krzysztof Chalupka authored
      Summary:
      Copypasting the docstring:
      ```
              Split a mesh into submeshes, defined by face indices of the original Meshes object.
      
              Args:
                face_indices:
                  Let the original mesh have verts_list() of length N.
                  Can be either
                    - List of length N. The n-th element is a list of length num_submeshes_n
                      (empty lists are allowed). Each element of the n-th sublist is a LongTensor
                      of length num_faces.
                    - List of length N. The n-th element is a possibly empty padded LongTensor of
                      shape (num_submeshes_n, max_num_faces).
      
              Returns:
                Meshes object with selected submeshes. The submesh tensors are cloned.
      
              Currently submeshing only works with no textures or with the TexturesVertex texture.
      
              Example:
      
              Take a Meshes object `cubes` with 4 meshes, each a translated cube. Then:
                  * len(cubes) is 4, len(cubes.verts_list()) is 4, len(cubes.faces_list()) is 4,
                  * [cube_verts.size for cube_verts in cubes.verts_list()] is [8, 8, 8, 8],
                  * [cube_faces.size for cube_faces in cubes.faces_list()] if [6, 6, 6, 6],
      
              Now let front_facet, top_and_bottom, all_facets be LongTensors of
              sizes (2), (4), and (12), each picking up a number of facets of a cube by specifying
              the appropriate triangular faces.
      
              Then let `subcubes = cubes.submeshes([[front_facet, top_and_bottom], [], [all_facets], []])`.
                  * len(subcubes) is 3.
                  * subcubes[0] is the front facet of the cube contained in cubes[0].
                  * subcubes[1] is a mesh containing the (disconnected) top and bottom facets of cubes[0].
                  * subcubes[2] is a clone of cubes[2].
                  * There are no submeshes of cubes[1] and cubes[3] in subcubes.
                  * subcubes[0] and subcubes[1] are not watertight. subcubes[2] is.
      ```
      
      Reviewed By: bottler
      
      Differential Revision: D35440657
      
      fbshipit-source-id: 8a6d2d300ce226b5b9eb440688528b5e795195a1
      050f650a
    • Krzysztof Chalupka's avatar
      Submesh 0/n: Default to empty Meshes · aab95575
      Krzysztof Chalupka authored
      Summary:
      The default behavior of Meshes (with verts=None, faces=None) throws an exception:
      ```
      meshes = Meshes()
      > ValueError: Verts and Faces must be either a list or a tensor with shape (batch_size, N, 3) where N is either the maximum number of verts or faces respectively.
      ```
      
      Instead, let's default to an empty mesh, following e.g. PyTorch:
      ```
      empty_tensor = torch.FloatTensor()
      > torch.tensor([])
      ```
      
      this change is backwards-compatible (you can still init with verts=[], faces=[]).
      
      Reviewed By: bottler, nikhilaravi
      
      Differential Revision: D35443453
      
      fbshipit-source-id: d638a8fef49a089bf0da6dd2201727b94ceb21ec
      aab95575
  5. 25 Feb, 2022 2 commits
    • Jeremy Reizenstein's avatar
      PyTorch 1.7 compatibility · 4d043fc9
      Jeremy Reizenstein authored
      Summary: Small changes discovered based on circleCI failures.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D34426807
      
      fbshipit-source-id: 819860f34b2f367dd24057ca7490284204180a13
      4d043fc9
    • Jeremy Reizenstein's avatar
      rename types to avoid clash · f8165687
      Jeremy Reizenstein authored
      Summary: There are cases where importing pytorch3d seems to fail (internally at Meta) because of a clash between the builtin types module and ours, so rename ours.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D34426817
      
      fbshipit-source-id: f175448db6a4967a9a3f7bb6f595aad2ffb36455
      f8165687
  6. 03 Feb, 2022 1 commit
  7. 07 Jan, 2022 1 commit
    • Jeremy Reizenstein's avatar
      initialize pointcloud from list containing Nones · fc4dd802
      Jeremy Reizenstein authored
      Summary:
      The following snippet should work in more cases.
           point_cloud = Pointclouds(
               [pcl.points_packed() for pcl in point_clouds],
               features=[pcl.features_packed() for pcl in point_clouds],
           )
      
      We therefore allow features and normals inputs to be lists which contain some (but not all) Nones.
      
      The initialization of a Pointclouds from empty data is also made a bit better now at working out how many feature channels there are.
      
      Reviewed By: davnov134
      
      Differential Revision: D31795089
      
      fbshipit-source-id: 54bf941ba80672d699ffd5ac28927740e830f8ab
      fc4dd802
  8. 06 Jan, 2022 1 commit
  9. 04 Jan, 2022 1 commit
    • Jeremy Reizenstein's avatar
      Update license for company name · 9eeb456e
      Jeremy Reizenstein authored
      Summary: Update all FB license strings to the new format.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D33403538
      
      fbshipit-source-id: 97a4596c5c888f3c54f44456dc07e718a387a02c
      9eeb456e
  10. 21 Dec, 2021 1 commit
    • Nikhila Ravi's avatar
      Join points as batch · 262c1bfc
      Nikhila Ravi authored
      Summary: Function to join a list of pointclouds as a batch similar to the corresponding function for Meshes.
      
      Reviewed By: bottler
      
      Differential Revision: D33145906
      
      fbshipit-source-id: 160639ebb5065e4fae1a1aa43117172719f3871b
      262c1bfc
  11. 06 Dec, 2021 1 commit
  12. 23 Nov, 2021 1 commit
  13. 10 Nov, 2021 1 commit
  14. 28 Oct, 2021 1 commit
    • Jeremy Reizenstein's avatar
      some pointcloud typing · bfeb82ef
      Jeremy Reizenstein authored
      Summary: Make clear that features_padded() etc can return None
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31795088
      
      fbshipit-source-id: 7b0bbb6f3b7ad7f7b6e6a727129537af1d1873af
      bfeb82ef
  15. 08 Oct, 2021 1 commit
  16. 02 Oct, 2021 1 commit
    • Jeremy Reizenstein's avatar
      subsample pointclouds · 4281df19
      Jeremy Reizenstein authored
      Summary: New function to randomly subsample Pointclouds to a maximum size.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30936533
      
      fbshipit-source-id: 789eb5004b6a233034ec1c500f20f2d507a303ff
      4281df19
  17. 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
  18. 24 Jun, 2021 2 commits
    • 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
    • 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
  19. 22 Jun, 2021 1 commit
    • Patrick Labatut's avatar
      License lint codebase · af93f348
      Patrick Labatut authored
      Summary: License lint codebase
      
      Reviewed By: theschnitz
      
      Differential Revision: D29001799
      
      fbshipit-source-id: 5c59869911785b0181b1663bbf430bc8b7fb2909
      af93f348
  20. 11 Jun, 2021 1 commit
    • Nikhila Ravi's avatar
      textures dimension check · ef162539
      Nikhila Ravi authored
      Summary:
      When textures are set on `Meshes` we need to check if the dimensions actually match that of the verts/faces in the mesh. There was a github issue where someone tried to set the attribute after construction of the `Meshes` object and ran into an error when trying to sample textures.
      
      The desired usage is to initialize the class with the textures (not set an attribute afterwards) but in any case we need to check the dimensions match before sampling textures.
      
      Reviewed By: bottler
      
      Differential Revision: D29020249
      
      fbshipit-source-id: 9fb8a5368b83c9ec53652df92b96fc8b2613f591
      ef162539
  21. 09 Jun, 2021 4 commits
    • Patrick Labatut's avatar
      Tidy uses of torch.device in Volumes · 1f9661e1
      Patrick Labatut authored
      Summary:
      Tidy uses of `torch.device` in `Volumes`:
      - Allow `str` or `torch.device` in `Volumes.to()` method
      - Consistently use `torch.device` for internal type
      - Fix comparison of devices
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D28970876
      
      fbshipit-source-id: c640cc22ced684a54cc450ac38a0f4b3435d47be
      1f9661e1
    • Patrick Labatut's avatar
      Tidy uses of torch.device in Pointclouds · 1db40ac5
      Patrick Labatut authored
      Summary:
      Tidy uses of `torch.device` in `Pointclouds`:
      - Allow `str` or `torch.device` in `Pointclouds.to()` method
      - Consistently use `torch.device` for internal type
      - Fix comparison of devices
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D28970221
      
      fbshipit-source-id: 3ca7104d4c0d9b20b0cff4f00e3ce931c5f1528a
      1db40ac5
    • Patrick Labatut's avatar
      Tidy uses of torch.device in Meshes · 633d66f1
      Patrick Labatut authored
      Summary:
      Tidy uses of `torch.device` in `Meshes`:
      - Allow `str` or `torch.device` in `Meshes.to()` method
      - Consistently use `torch.device` for internal type
      - Fix comparison of devices
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D28969461
      
      fbshipit-source-id: 16d3c1f5458954bb11fdf0efea88542e94dccd7a
      633d66f1
    • Patrick Labatut's avatar
      Improve volumes type annotations · 02650672
      Patrick Labatut authored
      Summary: Improve type annotations for volumes and remove a few pyre fixmes
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D28943371
      
      fbshipit-source-id: ca2b7a50d72a392910e65cee5e564f34523414d2
      02650672
  22. 08 Jun, 2021 1 commit
  23. 04 May, 2021 4 commits
    • Jeremy Reizenstein's avatar
      has_verts_normals for Meshes · 66b97a0c
      Jeremy Reizenstein authored
      Summary: Add ability to ask a Meshes if it already has normals. If it does, then requesting normals will not trigger a calculation. MeshesFormatInterpreters will therefore be able to decide whether to save normals.
      
      Reviewed By: theschnitz, nikhilaravi
      
      Differential Revision: D27765261
      
      fbshipit-source-id: 7c87dbf999d5616d20f5eb2c01039ee5ff65a830
      66b97a0c
    • Jeremy Reizenstein's avatar
      Allow setting verts_normals on Meshes · 2bbca5f2
      Jeremy Reizenstein authored
      Summary: Add ability to set the vertex normals when creating a Meshes, so that the pluggable loaders can return them from a file.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27765258
      
      fbshipit-source-id: b5ddaa00de3707f636f94d9f74d1da12ecce0608
      2bbca5f2
    • Jeremy Reizenstein's avatar
      avoid recalculating normals for simple move · 502f15ac
      Jeremy Reizenstein authored
      Summary: If offset_verts_ is used to move meshes with a single vector, the normals won't change so don't need to recalculate. I am planning to allow user-specified vertex normals. This change means that user-specified vertex normals won't get overwritten when they don't need to be.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27765256
      
      fbshipit-source-id: f6e4d308ac9ac023030325cb75a18d39b966cf88
      502f15ac
    • Jeremy Reizenstein's avatar
      Scale leaves verts normals unchanged · 17633808
      Jeremy Reizenstein authored
      Summary:
      There is no need to recalculate normals when scaling a mesh by a constant. We omit doing this for vertex normals. This will make things less confusing when we allow user-specified vertex normals.
      
      Face normals also don't need recalculating, but they are calculated at the same time as face areas which do, so it is easiest not to change their behavior here. That is convenient because we are not immediately planning to allow user-specified face normals.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D27793476
      
      fbshipit-source-id: 827f1be4bc78bf0391ce3959cce48c4f3ee326fe
      17633808
  24. 17 Apr, 2021 1 commit
    • Wanchao Liang's avatar
      Remove some pyre fixmes · 8660db98
      Wanchao Liang authored
      Reviewed By: divchenko
      
      Differential Revision: D27835360
      
      fbshipit-source-id: cbb23793ee57382e43bd65bd40cfeb2820c6eec2
      8660db98
  25. 09 Apr, 2021 1 commit
    • Jeremy Reizenstein's avatar
      spelling · 124bb5e3
      Jeremy Reizenstein authored
      Summary: Collection of spelling things, mostly in docs / tutorials.
      
      Reviewed By: gkioxari
      
      Differential Revision: D26101323
      
      fbshipit-source-id: 652f62bc9d71a4ff872efa21141225e43191353a
      124bb5e3
  26. 02 Feb, 2021 1 commit
  27. 25 Jan, 2021 1 commit
    • Jeremy Reizenstein's avatar
      textures device consistency · d173a2f8
      Jeremy Reizenstein authored
      Summary: Ensure that `mesh2 = mesh.to(device)` doesn't change the device of `mesh.textures`.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25978610
      
      fbshipit-source-id: 0558cd62132965d8693ebeea05e42b8c1d16cfbf
      d173a2f8
  28. 22 Jan, 2021 1 commit
    • Jeremy Reizenstein's avatar
      Allow single offset in offset_verts · ddebdfbc
      Jeremy Reizenstein authored
      Summary:
      It is common when trying things out to want to move a whole mesh or point cloud by the same amount. Here we allow the offset functions to broadcast.
      
      Also add a sanity check to join_meshes_as_scene which it is easy to call wrongly.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25980593
      
      fbshipit-source-id: cdf1568e1317e3b81ad94ed4e608ba7eef81290b
      ddebdfbc
  29. 07 Jan, 2021 1 commit
    • Jeremy Reizenstein's avatar
      skeleton of pluggable IO · b183dcb6
      Jeremy Reizenstein authored
      Summary: Unified interface for loading and saving meshes and pointclouds.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25372968
      
      fbshipit-source-id: 6fe57cc3704a89d81d13e959bee707b0c7b57d3b
      b183dcb6
  30. 05 Jan, 2021 1 commit