content: [project]
  name = "dn-splatter"
  version = "0.1.0"
  description = "Depth and normal priors for 3D Gaussian splatting and meshing"
  channels = ["nvidia/label/cuda-11.8.0", "nvidia", "conda-forge", "pytorch"]
  platforms = ["linux-64"]
  conda-pypi-map = { "conda-forge" = "https://raw.githubusercontent.com/prefix-dev/parselmouth/main/files/mapping_as_grayskull.json" }
  
  [tasks]
  # Quick Run example
  download-omnidata = {cmd="ls omnidata_ckpt/omnidata_dpt_normal_v2.ckpt || python dn_splatter/data/download_scripts/download_omnidata.py", outputs=["omnidata_ckpt/omnidata_dpt_normal_v2.ckpt"]}
  download-data-sample = {cmd="ls datasets/koivu_iphone.tar.gz || python dn_splatter/data/download_scripts/mushroom_download.py --sequence iphone --room-name koivu", outputs=["datasets/koivu_iphone.tar.gz"]}
  train-mushroom-sample = """
      ns-train dn-splatter \
      --pipeline.model.use-depth-loss True \
      --pipeline.model.depth-lambda 0.2 \
      --pipeline.model.use-depth-smooth-loss True \
      --pipeline.model.use-normal-loss True \
      --pipeline.model.normal-supervision mono \
      mushroom --data datasets/room_datasets/koivu --mode iphone
  """
  example = {cmd = "pwd", depends_on=["download-omnidata", "download-data-sample", "train-mushroom-sample"]}
  
  # Polycam example using dsine
  ## first download polycam only if ls fails (checking that file isn't already downloaded), || is used to check if file exists, if not move on to following command
  download-polycam = {cmd="ls datasets/polycam/6g-first-scan-poly.zip || wget -P datasets/polycam https://huggingface.co/datasets/pablovela5620/sample-polycam-room/resolve/main/6g-first-scan-poly.zip"}
  convert-poly-to-ns = {cmd="ls datasets/polycam/6g-first-scan-poly/transforms.json || ns-process-data polycam --data datasets/polycam/6g-first-scan-poly.zip --output-dir datasets/polycam/6g-first-scan-poly --use-depth", depends_on=["download-polycam"]}
  generate-normals = {cmd="ls datasets/polycam/6g-first-scan-poly/normals_from_pretrain/frame_00001.png || python dn_splatter/scripts/normals_from_pretrain.py --data-dir datasets/polycam/6g-first-scan-poly --normal-format dsine", depends_on=["convert-poly-to-ns"]}
  generate-pointcloud = "ls datasets/polycam/6g-first-scan-poly/iphone_pointcloud.ply || python dn_splatter/data/mushroom_utils/pointcloud_utils.py --data-path datasets/polycam/6g-first-scan-poly"
  train-polycam = """
  ns-train dn-splatter \
      --max-num-iterations 5001 \
      --pipeline.model.use-depth-loss True \
      --pipeline.model.depth-lambda 0.2 \
      --pipeline.model.use-depth-smooth-loss True \
      --pipeline.model.use-normal-loss True \
      --pipeline.model.normal-supervision mono \
      normal-nerfstudio --data datasets/polycam/6g-first-scan-poly --normal-format opencv
  """
  
  example-polycam = {cmd="pwd", depends_on=["generate-normals", "generate-pointcloud", "train-polycam"]}
  
  [dependencies]
  python = "3.10.*"
  pip = ">=24.0,<25"
  cuda = {version = "*", channel="nvidia/label/cuda-11.8.0"}
  pytorch-cuda = {version = "11.8.*", channel="pytorch"}
  pytorch = {version = ">=2.2.0,<2.3", channel="pytorch"}
  torchvision = {version = ">=0.17.0,<0.18", channel="pytorch"}
  gcc = "11.*"
  gxx = ">=11.4.0,<11.5"
  pyarrow = ">=15.0.2,<15.1"
  rerun-sdk = ">=0.15.1,<0.16"
  
  [pypi-dependencies]
  nerfstudio = { git = "https://github.com/nerfstudio-project/nerfstudio.git", rev = "a64026f8db23a4233327a1d0303e6082bf5b9805" }
  dn-splatter = { path = ".", editable = true}
  
  [system-requirements]
  libc = { family="glibc", version="2.30" }
  