diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..9d80983 --- /dev/null +++ b/.envrc @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +export DIRENV_WARN_TIMEOUT=20s + +eval "$(devenv direnvrc)" + +# `use devenv` supports the same options as the `devenv shell` command. +# +# To silence all output, use `--quiet`. +# +# Example usage: use devenv --quiet --impure --option services.postgres.enable:bool true +use devenv -i diff --git a/.gitignore b/.gitignore index b7faf40..61d3d11 100644 --- a/.gitignore +++ b/.gitignore @@ -136,7 +136,6 @@ celerybeat.pid # Environments .env -.envrc .venv env/ venv/ @@ -182,9 +181,9 @@ cython_debug/ .abstra/ # Visual Studio Code -# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore +# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore -# and can be added to the global gitignore or merged into this file. However, if you prefer, +# and can be added to the global gitignore or merged into this file. However, if you prefer, # you could uncomment the following to ignore the entire vscode folder # .vscode/ @@ -205,3 +204,18 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + +# Projects +data/ +deps/ + +# Devenv +.devenv* +devenv.local.nix +devenv.local.yaml + +# direnv +.direnv + +# pre-commit +.pre-commit-config.yaml diff --git a/.justfile b/.justfile new file mode 100644 index 0000000..1991978 --- /dev/null +++ b/.justfile @@ -0,0 +1,13 @@ +activate: + micromamba activate ./.venv + +update-venv: + micromamba env export --no-builds | grep -v "prefix" > venv.yaml + +download-test: + python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path data/ + python -m habitat_sim.utils.datasets_download --uids habitat_test_pointnav_dataset --data-path data/ + python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset --data-path data/ + python -m habitat_sim.utils.datasets_download --uids rearrange_dataset_v2 --data-path data/ + python -m habitat_sim.utils.datasets_download --uids hab_fetch --data-path data/ + python -m habitat_sim.utils.datasets_download --uids ycb --data-path data/ diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..e4c2c00 --- /dev/null +++ b/devenv.lock @@ -0,0 +1,167 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1769601151, + "owner": "cachix", + "repo": "devenv", + "rev": "b2ef1164b4f330d6b11c6ad3da962452eab7b3bb", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769069492, + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1762808025, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixgl": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1762090880, + "owner": "nix-community", + "repo": "nixGL", + "rev": "b6105297e6f0cd041670c3e8628394d4ee247ed5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixGL", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1769664171, + "owner": "nixos", + "repo": "nixpkgs", + "rev": "effc419e5e4bddeda827eb688347bef40733bc1c", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1767052823, + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "538a5124359f0b3d466e1160378c87887e3b51a4", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "git-hooks": "git-hooks", + "nixgl": "nixgl", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": [ + "git-hooks" + ] + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..0749d07 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,63 @@ +{ + pkgs, + lib, + config, + inputs, + ... +}: let + pkgs-nixgl = + (import inputs.nixpkgs { + system = pkgs.stdenv.hostPlatform.system; + config.allowUnfree = true; + overlays = [inputs.nixgl.overlay]; + }).nixgl.override { + nvidiaVersionFile = "/proc/driver/nvidia/version"; + nvidiaVersion = "580.126.09"; + }; +in { + # https://devenv.sh/basics/ + # env.GREET = "devenv"; + + # https://devenv.sh/packages/ + packages = [ + pkgs-nixgl.auto.nixGLNvidia + ]; + + # https://devenv.sh/languages/ + # languages.rust.enable = true; + + # https://devenv.sh/processes/ + # processes.dev.exec = "${lib.getExe pkgs.watchexec} -n -- ls -la"; + + # https://devenv.sh/services/ + # services.postgres.enable = true; + + # https://devenv.sh/scripts/ + # scripts.hello.exec = '' + # echo hello from $GREET + # ''; + + # https://devenv.sh/basics/ + enterShell = '' + eval "$(micromamba shell hook --shell bash)" + micromamba activate ./.venv + export PATH=$PATH:/home/sikongjueluo/Projects/Mini-Nav + ''; + + # https://devenv.sh/tasks/ + # tasks = { + # "myproj:setup".exec = "mytool build"; + # "devenv:enterShell".after = [ "myproj:setup" ]; + # }; + + # https://devenv.sh/tests/ + # enterTest = '' + # echo "Running tests" + # git --version | grep --color=auto "${pkgs.git.version}" + # ''; + + # https://devenv.sh/git-hooks/ + # git-hooks.hooks.shellcheck.enable = true; + + # See full reference at https://devenv.sh/reference/options/ +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..d6bcffa --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json +inputs: + nixpkgs: + url: github:cachix/devenv-nixpkgs/rolling + nixgl: + url: "github:nix-community/nixGL" + +# If you're using non-OSS software, you can set allowUnfree to true. +# allowUnfree: true + +# If you're willing to use a package that's vulnerable +# permittedInsecurePackages: +# - "openssl-1.1.1w" + +# If you have more than one devenv you can merge them +#imports: +# - ./backend diff --git a/venv.yaml b/venv.yaml new file mode 100644 index 0000000..969e2d8 --- /dev/null +++ b/venv.yaml @@ -0,0 +1,321 @@ +name: +channels: + - aihabitat + - conda-forge + - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main +dependencies: + - _libgcc_mutex=0.1 + - _openmp_mutex=4.5 + - aiodns=3.5.0 + - aiohappyeyeballs=2.6.1 + - aiohttp=3.12.15 + - aiosignal=1.4.0 + - alsa-lib=1.2.15.3 + - aom=3.9.1 + - arrow-cpp=19.0.0 + - async-timeout=5.0.1 + - attrs=25.3.0 + - aws-c-auth=0.8.5 + - aws-c-cal=0.8.5 + - aws-c-common=0.11.1 + - aws-c-compression=0.3.1 + - aws-c-event-stream=0.5.4 + - aws-c-http=0.9.3 + - aws-c-io=0.17.0 + - aws-c-mqtt=0.12.2 + - aws-c-s3=0.7.11 + - aws-c-sdkutils=0.2.3 + - aws-checksums=0.2.3 + - aws-crt-cpp=0.31.0 + - aws-sdk-cpp=1.11.528 + - brotli=1.0.9 + - brotli-bin=1.0.9 + - brotlicffi=1.0.9.2 + - bzip2=1.0.8 + - c-ares=1.34.6 + - ca-certificates=2026.1.4 + - cairo=1.18.4 + - certifi=2025.8.3 + - cffi=2.0.0 + - charset-normalizer=3.4.4 + - cmake=3.14.0 + - colorama=0.4.6 + - contourpy=1.3.0 + - curl=8.8.0 + - cycler=0.12.1 + - cyrus-sasl=2.1.28 + - datasets=3.3.2 + - dav1d=1.2.1 + - dbus=1.16.2 + - dill=0.3.8 + - expat=2.7.3 + - filelock=3.17.0 + - fontconfig=2.14.2 + - fonttools=4.59.1 + - freetype=2.13.3 + - fribidi=1.0.16 + - frozenlist=1.8.0 + - fsspec=2024.12.0 + - gflags=2.2.2 + - gitdb=4.0.12 + - gitpython=3.1.45 + - glog=0.5.0 + - graphite2=1.3.14 + - habitat-sim=0.3.3 + - habitat-sim-mutex=1.0 + - harfbuzz=10.2.0 + - hf-xet=1.1.8 + - huggingface_hub=0.34.4 + - icu=73.2 + - idna=3.11 + - imageio=2.37.0 + - importlib-resources=6.5.2 + - importlib_resources=6.5.2 + - jpeg=9e + - keyutils=1.6.3 + - kiwisolver=1.4.7 + - krb5=1.21.3 + - lcms2=2.17 + - ld_impl_linux-64=2.45 + - lerc=4.0.0 + - libabseil=20250127.0 + - libavif=1.3.0 + - libavif16=1.3.0 + - libblas=3.11.0 + - libbrotlicommon=1.0.9 + - libbrotlidec=1.0.9 + - libbrotlienc=1.0.9 + - libcblas=3.11.0 + - libclang13=21.1.8 + - libcups=2.4.15 + - libcurl=8.8.0 + - libdeflate=1.22 + - libdrm=2.4.125 + - libedit=3.1.20250104 + - libegl=1.7.0 + - libev=4.33 + - libevent=2.1.12 + - libexpat=2.7.3 + - libffi=3.5.2 + - libgcc=15.2.0 + - libgcc-ng=15.2.0 + - libgfortran=15.2.0 + - libgfortran-ng=15.2.0 + - libgfortran5=15.2.0 + - libgl=1.7.0 + - libglib=2.84.2 + - libglvnd=1.7.0 + - libglx=1.7.0 + - libgomp=15.2.0 + - libgrpc=1.71.0 + - libiconv=1.18 + - libkrb5=1.21.3 + - liblapack=3.11.0 + - libllvm14=14.0.6 + - libllvm15=15.0.7 + - libllvm21=21.1.8 + - liblzma=5.8.2 + - liblzma-devel=5.8.2 + - libnghttp2=1.58.0 + - libnsl=2.0.1 + - libntlm=1.8 + - libopenblas=0.3.30 + - libopus=1.6.1 + - libpciaccess=0.18 + - libpng=1.6.43 + - libpq=17.6 + - libprotobuf=5.29.3 + - libre2-11=2024.07.02 + - libsqlite=3.46.0 + - libssh2=1.11.0 + - libstdcxx=15.2.0 + - libstdcxx-ng=15.2.0 + - libthrift=0.15.0 + - libtiff=4.7.1 + - libuuid=2.41.3 + - libuv=1.51.0 + - libvpx=1.13.1 + - libwebp-base=1.6.0 + - libxcb=1.17.0 + - libxcrypt=4.4.36 + - libxkbcommon=1.11.0 + - libxkbfile=1.1.0 + - libxml2=2.13.9 + - libxslt=1.1.43 + - libzlib=1.2.13 + - llvmlite=0.43.0 + - lmdb=0.9.31 + - lz4-c=1.9.4 + - matplotlib=3.9.4 + - matplotlib-base=3.9.4 + - mesalib=25.1.5 + - multidict=6.7.0 + - multiprocess=0.70.15 + - munkres=1.1.4 + - mysql-common=9.3.0 + - mysql-libs=9.3.0 + - ncurses=6.5 + - nspr=4.38 + - nss=3.100 + - numba=0.60.0 + - numpy=1.26.4 + - openjpeg=2.5.2 + - openldap=2.6.10 + - openssl=3.6.0 + - orc=2.1.1 + - packaging=26.0 + - pandas=1.2.4 + - pcre2=10.42 + - pillow=11.3.0 + - pip=25.2 + - pixman=0.46.4 + - propcache=0.3.1 + - protobuf=5.29.3 + - pthread-stubs=0.4 + - pyarrow=19.0.0 + - pycares=4.10.0 + - pycparser=2.23 + - pyparsing=3.2.3 + - pyside6=6.9.2 + - pysocks=1.7.1 + - python=3.9.19 + - python-dateutil=2.9.0.post0 + - python-xxhash=3.5.0 + - python_abi=3.9 + - pytz=2025.2 + - pyyaml=6.0.2 + - qhull=2020.2 + - qtbase=6.9.2 + - qtdeclarative=6.9.2 + - qtshadertools=6.9.2 + - qtsvg=6.9.2 + - qttools=6.9.2 + - qtwebchannel=6.9.2 + - qtwebengine=6.9.1 + - qtwebsockets=6.9.2 + - quaternion=2023.0.4 + - rav1e=0.7.1 + - re2=2024.07.02 + - readline=8.3 + - regex=2025.9.1 + - requests=2.32.5 + - rhash=1.4.3 + - s2n=1.5.14 + - safetensors=0.5.3 + - scipy=1.13.1 + - setuptools=80.9.0 + - six=1.17.0 + - smmap=3.0.5 + - snappy=1.2.2 + - spirv-tools=2025.4 + - sqlite=3.51.1 + - svt-av1=3.1.2 + - tk=8.6.13 + - tokenizers=0.21.0 + - tornado=6.5.2 + - tqdm=4.67.1 + - transformers=4.49.0 + - typing-extensions=4.15.0 + - typing_extensions=4.15.0 + - tzdata=2025c + - unicodedata2=16.0.0 + - urllib3=2.5.0 + - utf8proc=2.6.1 + - uvloop=0.22.1 + - wheel=0.45.1 + - withbullet=2.0 + - xcb-util=0.4.1 + - xcb-util-cursor=0.1.6 + - xcb-util-image=0.4.0 + - xcb-util-keysyms=0.4.1 + - xcb-util-renderutil=0.3.10 + - xcb-util-wm=0.4.2 + - xkeyboard-config=2.46 + - xorg-libice=1.1.2 + - xorg-libsm=1.2.6 + - xorg-libx11=1.8.12 + - xorg-libxau=1.0.12 + - xorg-libxcomposite=0.4.6 + - xorg-libxcursor=1.2.3 + - xorg-libxdamage=1.1.6 + - xorg-libxdmcp=1.1.5 + - xorg-libxext=1.3.6 + - xorg-libxfixes=6.0.2 + - xorg-libxi=1.8.2 + - xorg-libxinerama=1.1.5 + - xorg-libxrandr=1.5.4 + - xorg-libxrender=0.9.12 + - xorg-libxshmfence=1.3.3 + - xorg-libxtst=1.2.5 + - xorg-libxxf86vm=1.1.6 + - xxhash=0.8.0 + - xz=5.8.2 + - xz-gpl-tools=5.8.2 + - xz-tools=5.8.2 + - yaml=0.2.5 + - yarl=1.18.0 + - zipp=3.23.0 + - zlib=1.2.13 + - zstd=1.5.6 + - pip: + - Jinja2==3.1.6 + - Markdown==3.9 + - MarkupSafe==3.0.3 + - Pygments==2.19.2 + - Werkzeug==3.1.5 + - absl-py==2.3.1 + - antlr4-python3-runtime==4.9.3 + - braceexpand==0.1.7 + - click==8.1.8 + - cloudpickle==3.1.2 + - decorator==5.2.1 + - faster-fifo==1.5.2 + - grpcio==1.76.0 + - gym==0.23.0 + - gym-notices==0.1.0 + - habitat-baselines==0.3.320250127 + - habitat-lab==0.3.320250127 + - hydra-core==1.3.2 + - ifcfg==0.24 + - imageio-ffmpeg==0.6.0 + - importlib_metadata==8.7.1 + - lmdb==1.7.5 + - markdown-it-py==3.0.0 + - mdurl==0.1.2 + - moviepy==2.2.1 + - mpmath==1.3.0 + - msgpack==1.1.2 + - networkx==3.2.1 + - nvidia-cublas-cu12==12.8.4.1 + - nvidia-cuda-cupti-cu12==12.8.90 + - nvidia-cuda-nvrtc-cu12==12.8.93 + - nvidia-cuda-runtime-cu12==12.8.90 + - nvidia-cudnn-cu12==9.10.2.21 + - nvidia-cufft-cu12==11.3.3.83 + - nvidia-cufile-cu12==1.13.1.3 + - nvidia-curand-cu12==10.3.9.90 + - nvidia-cusolver-cu12==11.7.3.90 + - nvidia-cusparse-cu12==12.5.8.93 + - nvidia-cusparselt-cu12==0.7.1 + - nvidia-nccl-cu12==2.27.3 + - nvidia-nvjitlink-cu12==12.8.93 + - nvidia-nvtx-cu12==12.8.90 + - objectio==0.2.29 + - omegaconf==2.3.0 + - opencv-python==4.11.0.86 + - pillow==10.4.0 + - proglog==0.1.12 + - python-dotenv==1.2.1 + - rich==14.3.1 + - shellingham==1.5.4 + - simplejson==3.20.2 + - sympy==1.14.0 + - tensorboard==2.20.0 + - tensorboard-data-server==0.7.2 + - threadpoolctl==3.6.0 + - torch==2.8.0 + - torchvision==0.23.0 + - triton==3.4.0 + - typer==0.21.1 + - webdataset==0.1.40 +