1. 07 Jan, 2021 2 commits
    • Jeremy Reizenstein's avatar
      add existing mesh formats to pluggable · 89532a87
      Jeremy Reizenstein authored
      Summary: We already have code for obj and ply formats. Here we actually make it available in `IO.load_mesh` and `IO.save_mesh`.
      
      Reviewed By: theschnitz, nikhilaravi
      
      Differential Revision: D25400650
      
      fbshipit-source-id: f26d6d7fc46c48634a948eea4d255afad13b807b
      89532a87
    • 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
  2. 06 Jan, 2021 5 commits
    • David Novotny's avatar
      Tutorial - Fit neural radiance field · 9fc661f8
      David Novotny authored
      Summary: Implements a simple nerf tutorial.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24650983
      
      fbshipit-source-id: b3db51c0ed74779ec9b510350d1675b0ae89422c
      9fc661f8
    • David Novotny's avatar
      Tutorial - Fit textured volume. · 01f86dde
      David Novotny authored
      Summary: Implements a notebook that fits a volume to multiple views of the cow mesh.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24553385
      
      fbshipit-source-id: 367ca39e176b40df2c5946c9c05d3be824dc8d1c
      01f86dde
    • David Novotny's avatar
      Implicit/Volume renderer · b466c381
      David Novotny authored
      Summary: Implements the `ImplicitRenderer` and `VolumeRenderer`.
      
      Reviewed By: gkioxari
      
      Differential Revision: D24418791
      
      fbshipit-source-id: 127f21186d8e210895db1dcd0681f09f230d81a4
      b466c381
    • generatedunixname89002005287564's avatar
      Daily `arc lint --take BLACK` · e6a32bfc
      generatedunixname89002005287564 authored
      Reviewed By: zertosh
      
      Differential Revision: D25800514
      
      fbshipit-source-id: 191b2753b8fcfbe2386c761241aaeb58939a973e
      e6a32bfc
    • David Novotny's avatar
      Raysampling · e6bc960f
      David Novotny authored
      Summary: Implements 3 basic raysamplers.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24110643
      
      fbshipit-source-id: eb67d0e56773c7871ebdcb23e7e520302dc1b3c9
      e6bc960f
  3. 05 Jan, 2021 6 commits
    • generatedunixname89002005307016's avatar
      suppress errors in `vision/fair/pytorch3d` · 1f9cf91e
      generatedunixname89002005307016 authored
      Differential Revision: D25781183
      
      fbshipit-source-id: e27808a4c2b94bba205756001cb909827182b592
      1f9cf91e
    • David Novotny's avatar
      Raymarching · 1af1a36b
      David Novotny authored
      Summary: Implements two basic raymarchers.
      
      Reviewed By: gkioxari
      
      Differential Revision: D24064250
      
      fbshipit-source-id: 18071bd039995336b7410caa403ea29fafb5c66f
      1af1a36b
    • David Novotny's avatar
      Point clouds to volumes · aa9bcaf0
      David Novotny authored
      Summary:
      Conversion from point clouds to volumes
      
      ```
      Benchmark                                                        Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      ADD_POINTS_TO_VOLUMES_10_trilinear_[25, 25, 25]_1000                 43219           44067             12
      ADD_POINTS_TO_VOLUMES_10_trilinear_[25, 25, 25]_10000                43274           45313             12
      ADD_POINTS_TO_VOLUMES_10_trilinear_[25, 25, 25]_100000               46281           47100             11
      ADD_POINTS_TO_VOLUMES_10_trilinear_[101, 111, 121]_1000              51224           51912             10
      ADD_POINTS_TO_VOLUMES_10_trilinear_[101, 111, 121]_10000             52092           54487             10
      ADD_POINTS_TO_VOLUMES_10_trilinear_[101, 111, 121]_100000            59262           60514              9
      ADD_POINTS_TO_VOLUMES_10_nearest_[25, 25, 25]_1000                   15998           17237             32
      ADD_POINTS_TO_VOLUMES_10_nearest_[25, 25, 25]_10000                  15964           16994             32
      ADD_POINTS_TO_VOLUMES_10_nearest_[25, 25, 25]_100000                 16881           19286             30
      ADD_POINTS_TO_VOLUMES_10_nearest_[101, 111, 121]_1000                19150           25277             27
      ADD_POINTS_TO_VOLUMES_10_nearest_[101, 111, 121]_10000               18746           19999             27
      ADD_POINTS_TO_VOLUMES_10_nearest_[101, 111, 121]_100000              22321           24568             23
      ADD_POINTS_TO_VOLUMES_100_trilinear_[25, 25, 25]_1000                49693           50288             11
      ADD_POINTS_TO_VOLUMES_100_trilinear_[25, 25, 25]_10000               51429           52449             10
      ADD_POINTS_TO_VOLUMES_100_trilinear_[25, 25, 25]_100000             237076          237377              3
      ADD_POINTS_TO_VOLUMES_100_trilinear_[101, 111, 121]_1000             81875           82597              7
      ADD_POINTS_TO_VOLUMES_100_trilinear_[101, 111, 121]_10000           106671          107045              5
      ADD_POINTS_TO_VOLUMES_100_trilinear_[101, 111, 121]_100000          483740          484607              2
      ADD_POINTS_TO_VOLUMES_100_nearest_[25, 25, 25]_1000                  16667           18143             31
      ADD_POINTS_TO_VOLUMES_100_nearest_[25, 25, 25]_10000                 17682           18922             29
      ADD_POINTS_TO_VOLUMES_100_nearest_[25, 25, 25]_100000                65463           67116              8
      ADD_POINTS_TO_VOLUMES_100_nearest_[101, 111, 121]_1000               48058           48826             11
      ADD_POINTS_TO_VOLUMES_100_nearest_[101, 111, 121]_10000              53529           53998             10
      ADD_POINTS_TO_VOLUMES_100_nearest_[101, 111, 121]_100000            123684          123901              5
      --------------------------------------------------------------------------------
      ```
      
      Output with `DEBUG=True`
      {F338561209}
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22017500
      
      fbshipit-source-id: ed3e8ed13940c593841d93211623dd533974012f
      aa9bcaf0
    • David Novotny's avatar
      Volumes data structure. · 03ee1dbf
      David Novotny authored
      Summary: Implemented a data structure for volumes.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20342920
      
      fbshipit-source-id: ccc23eaa183ed8a4e9cd7674b4dcf31e8a65c3c6
      03ee1dbf
    • David Novotny's avatar
      __getitem__ for Transform3D · 1e4a2e86
      David Novotny authored
      Summary: Implements the `__getitem__` method for `Transform3D`
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D23813975
      
      fbshipit-source-id: 5da752ed8ea029ad0af58bb7a7856f0995519b7a
      1e4a2e86
    • generatedunixname89002005307016's avatar
      suppress errors in `vision/fair/pytorch3d` · ac3f8dc8
      generatedunixname89002005307016 authored
      Differential Revision: D25777275
      
      fbshipit-source-id: ca30fedca118ff22a8be5e29c4c4f21628c94579
      ac3f8dc8
  4. 04 Jan, 2021 1 commit
  5. 27 Dec, 2020 1 commit
    • Jeremy Reizenstein's avatar
      fix conda channel in tests · 0ba55a83
      Jeremy Reizenstein authored
      Summary: Now we use iopath, we need to find it from its own channel.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25710499
      
      fbshipit-source-id: 1c67eb6d5b009d35b65a3acd3ebff6e0e45fecc4
      0ba55a83
  6. 24 Dec, 2020 4 commits
    • generatedunixname89002005307016's avatar
      suppress errors in `vision/fair/pytorch3d` · fc58acb2
      generatedunixname89002005307016 authored
      Differential Revision: D25702902
      
      fbshipit-source-id: f0d6708ba917df85b575dfc5525c902b2cab7ea0
      fc58acb2
    • Jeremy Reizenstein's avatar
      PathManager passing · 25c065e9
      Jeremy Reizenstein authored
      Summary:
      Make no internal functions inside pytorch3d/io interpret str paths except using a PathManager from iopath which they have been given. This means we no longer use any global PathManager object and we no longer use fvcore's deprecated file_io.
      
      To preserve the APIs, various top level functions create their own default-initialized PathManager object if they are not provided one.
      
      Reviewed By: theschnitz
      
      Differential Revision: D25372969
      
      fbshipit-source-id: c176ee31439645fa54a157d6f1aef18b09501569
      25c065e9
    • Jeremy Reizenstein's avatar
      lint · b9562157
      Jeremy Reizenstein authored
      Summary: Allowing usort, isort and black to coexist without fighting means we can't have imports commented as deprecated from the same module as other imports.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25372970
      
      fbshipit-source-id: 637f5a0025c0df9fbec47cba73ce5387f4f8b467
      b9562157
    • Jeremy Reizenstein's avatar
      iopath dependency · 513a6476
      Jeremy Reizenstein authored
      Summary: Add ioPath as a dependency of PyTorch3D in preparation for using the new PathManager.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25372971
      
      fbshipit-source-id: d8aa661d2de975e747dd494edc42bf843990cf68
      513a6476
  7. 22 Dec, 2020 1 commit
    • Jeremy Reizenstein's avatar
      requirements for readthedocs · 0a309ec6
      Jeremy Reizenstein authored
      Summary: Use a more recent PyTorch to build the documentation.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25679756
      
      fbshipit-source-id: 83d647f709337110d39886eaa6aad2565d740c6d
      0a309ec6
  8. 21 Dec, 2020 1 commit
    • Christoph Lassner's avatar
      Fix Pulsar backend batched radius handling. · caa33713
      Christoph Lassner authored
      Summary: This fixes a corner case for multi-radius handling for the pulsar backend. The additional dimensionality check ensures that the batched parsing for radiuses is only performed when appropriate.
      
      Reviewed By: bottler
      
      Differential Revision: D25387708
      
      fbshipit-source-id: c486dcf327f812265b7ca8ca5ef5c6a31e6d4549
      caa33713
  9. 18 Dec, 2020 2 commits
  10. 17 Dec, 2020 1 commit
    • Nikhila Ravi's avatar
      Texture Atlas sampling bug fix · 01759d8f
      Nikhila Ravi authored
      Summary: Fixes the index out of bound errors for texture sampling from a texture atlas: when barycentric coordinates are 1.0, the integer index into the (R, R) per face texture map is R (max can only be R-1).
      
      Reviewed By: gkioxari
      
      Differential Revision: D25543803
      
      fbshipit-source-id: 82d0935b981352b49c1d95d5a17f9cc88bad0a82
      01759d8f
  11. 15 Dec, 2020 2 commits
  12. 14 Dec, 2020 4 commits
  13. 11 Dec, 2020 1 commit
  14. 10 Dec, 2020 1 commit
    • Jeremy Reizenstein's avatar
      CUB conda instructions · d6412c94
      Jeremy Reizenstein authored
      Summary: We have already uploaded a conda package of the cub 1.10.0 sources to our channel on anaconda. Here is the code we used.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D25395358
      
      fbshipit-source-id: b58fd473fcafd425c98c9d7a7c32574f651383a0
      d6412c94
  15. 09 Dec, 2020 1 commit
    • Nikhila Ravi's avatar
      Non square image rasterization for meshes · d07307a4
      Nikhila Ravi authored
      Summary:
      There are a couple of options for supporting non square images:
      1) NDC stays at [-1, 1] in both directions with the distance calculations all modified by (W/H). There are a lot of distance based calculations (e.g. triangle areas for barycentric coordinates etc) so this requires changes in many places.
      2) NDC is scaled by (W/H) so the smallest side has [-1, 1]. In this case none of the distance calculations need to be updated and only the pixel to NDC calculation needs to be modified.
      
      I decided to go with option 2 after trying option 1!
      
      API Changes:
      - Image size can now be specified optionally as a tuple
      
      TODO:
      - add a benchmark test for the non square case.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D24404975
      
      fbshipit-source-id: 545efb67c822d748ec35999b35762bce58db2cf4
      d07307a4
  16. 03 Dec, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Slow pull from docker · 0216e468
      Jeremy Reizenstein authored
      Summary: The "manual" docker pull in the testrun builds has been taking more than 10 minutes recently, and its lack of output causes circleci to timeout. As a quick fix, we enable the output from this operation.
      
      Reviewed By: gkioxari
      
      Differential Revision: D25305127
      
      fbshipit-source-id: 19682bfa0294145457a37df6d6faf7a08dcc63c9
      0216e468
  17. 01 Dec, 2020 1 commit
  18. 30 Nov, 2020 1 commit
    • Georgia Gkioxari's avatar
      taubin smoothing · 112959e0
      Georgia Gkioxari authored
      Summary: Taubin Smoothing for filtering meshes and making them smoother. Taubin smoothing is an iterative approach.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D24751149
      
      fbshipit-source-id: fb779e955f1a1f6750e704f1b4c6dfa37aebac1a
      112959e0
  19. 19 Nov, 2020 1 commit
    • Amitav Baruah's avatar
      Fix plotly pointcloud visualization feature bug · fc7a4cac
      Amitav Baruah authored
      Summary: If a pointcloud had less than pointcloud_max_points, the colors would not render. This diff fixes that.
      
      Reviewed By: bottler
      
      Differential Revision: D25099044
      
      fbshipit-source-id: 47c3ddcdb4e06284b0a7966ffca1b973f394921f
      fc7a4cac
  20. 18 Nov, 2020 2 commits
    • Amitav Baruah's avatar
      Update subplot arrangement to support non-uniform grids · 6c2fc685
      Amitav Baruah authored
      Summary: Previously, grids where the columns don't divide the number of plots evenly would error. Now, there'll just be a sparse last row.
      
      Reviewed By: bottler
      
      Differential Revision: D25069236
      
      fbshipit-source-id: 9d2fd62f3d39bfebc07ce0a41718621fa69d6057
      6c2fc685
    • Georgia Gkioxari's avatar
      move icp_data.pth to tests/data · 5fb63b45
      Georgia Gkioxari authored
      Summary: Move icp_data.pth to tests/data
      
      Reviewed By: bottler
      
      Differential Revision: D25012575
      
      fbshipit-source-id: 9252d2eeca9141c82ad3bf9d3e3331a2eab5203b
      5fb63b45
  21. 12 Nov, 2020 1 commit