visionsim 0.1.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. visionsim-0.1.0a1/.github/workflows/integration_tests.yml +48 -0
  2. visionsim-0.1.0a1/.gitignore +121 -0
  3. visionsim-0.1.0a1/.pre-commit-config.yaml +27 -0
  4. visionsim-0.1.0a1/LICENSE +21 -0
  5. visionsim-0.1.0a1/PKG-INFO +77 -0
  6. visionsim-0.1.0a1/README.md +24 -0
  7. visionsim-0.1.0a1/docs/Makefile +20 -0
  8. visionsim-0.1.0a1/docs/make.bat +35 -0
  9. visionsim-0.1.0a1/docs/source/_static/blender/keyframing-api.gif +0 -0
  10. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Cartesian2Polar.png +0 -0
  11. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Depth-TopLevel-dark.png +0 -0
  12. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Depth-TopLevel.png +0 -0
  13. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Flow-TopLevel-dark.png +0 -0
  14. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Flow-TopLevel.png +0 -0
  15. visionsim-0.1.0a1/docs/source/_static/blender/nodes/FlowDebug-dark.png +0 -0
  16. visionsim-0.1.0a1/docs/source/_static/blender/nodes/FlowDebug.png +0 -0
  17. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Normal-TopLevel-dark.png +0 -0
  18. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Normal-TopLevel.png +0 -0
  19. visionsim-0.1.0a1/docs/source/_static/blender/nodes/NormalDebug-dark.png +0 -0
  20. visionsim-0.1.0a1/docs/source/_static/blender/nodes/NormalDebug.png +0 -0
  21. visionsim-0.1.0a1/docs/source/_static/blender/nodes/RGB-TopLevel-dark.png +0 -0
  22. visionsim-0.1.0a1/docs/source/_static/blender/nodes/RGB-TopLevel.png +0 -0
  23. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Segmentation-TopLevel-dark.png +0 -0
  24. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Segmentation-TopLevel.png +0 -0
  25. visionsim-0.1.0a1/docs/source/_static/blender/nodes/SegmentationDebug-dark.png +0 -0
  26. visionsim-0.1.0a1/docs/source/_static/blender/nodes/SegmentationDebug.png +0 -0
  27. visionsim-0.1.0a1/docs/source/_static/blender/nodes/Vec2RGBA.png +0 -0
  28. visionsim-0.1.0a1/docs/source/_static/css/custom.css +19 -0
  29. visionsim-0.1.0a1/docs/source/_static/interpolation-error-vs-rendertime.svg +2527 -0
  30. visionsim-0.1.0a1/docs/source/_static/lego-dvs125fps-preview.gif +0 -0
  31. visionsim-0.1.0a1/docs/source/_static/lego-gt-preview.gif +0 -0
  32. visionsim-0.1.0a1/docs/source/_static/lego-rgb25fps-preview.gif +0 -0
  33. visionsim-0.1.0a1/docs/source/_static/lego-spc4kHz-preview.gif +0 -0
  34. visionsim-0.1.0a1/docs/source/_static/lego0025-interp.gif +0 -0
  35. visionsim-0.1.0a1/docs/source/_static/lego0050-interp.gif +0 -0
  36. visionsim-0.1.0a1/docs/source/_static/lego0100-interp.gif +0 -0
  37. visionsim-0.1.0a1/docs/source/_static/lego0200-interp.gif +0 -0
  38. visionsim-0.1.0a1/docs/source/_static/rpc-architecture.svg +333 -0
  39. visionsim-0.1.0a1/docs/source/_static/sensors/Emulate_active_spcs-dark.svg +5339 -0
  40. visionsim-0.1.0a1/docs/source/_static/sensors/Emulate_active_spcs.svg +6879 -0
  41. visionsim-0.1.0a1/docs/source/_static/sensors/ToF_Imaging_Model.svg +3 -0
  42. visionsim-0.1.0a1/docs/source/_static/sensors/ToF_Imaging_Model_dark.svg +3 -0
  43. visionsim-0.1.0a1/docs/source/_static/sensors/imu-preview.gif +0 -0
  44. visionsim-0.1.0a1/docs/source/_static/sensors/render-camera-geonodes.png +0 -0
  45. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-exposure-1.png +0 -0
  46. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-exposure-2.png +0 -0
  47. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-exposure-3.png +0 -0
  48. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-exposure-4.png +0 -0
  49. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-readnoise-1.png +0 -0
  50. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-readnoise-2.png +0 -0
  51. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-readnoise-3.png +0 -0
  52. visionsim-0.1.0a1/docs/source/_static/sensors/rgb/lego-readnoise-4.png +0 -0
  53. visionsim-0.1.0a1/docs/source/autocomplete.rst +34 -0
  54. visionsim-0.1.0a1/docs/source/conf.py +48 -0
  55. visionsim-0.1.0a1/docs/source/contents.rst +34 -0
  56. visionsim-0.1.0a1/docs/source/development.rst +27 -0
  57. visionsim-0.1.0a1/docs/source/index.rst +12 -0
  58. visionsim-0.1.0a1/docs/source/overview.rst +17 -0
  59. visionsim-0.1.0a1/docs/source/quick-start.rst +146 -0
  60. visionsim-0.1.0a1/docs/source/sections/blender/architecture.rst +15 -0
  61. visionsim-0.1.0a1/docs/source/sections/blender/groundtruths.rst +158 -0
  62. visionsim-0.1.0a1/docs/source/sections/blender/keyframing.rst +57 -0
  63. visionsim-0.1.0a1/docs/source/sections/blender/rendering.rst +42 -0
  64. visionsim-0.1.0a1/docs/source/sections/datasets.rst +125 -0
  65. visionsim-0.1.0a1/docs/source/sections/emulation.rst +10 -0
  66. visionsim-0.1.0a1/docs/source/sections/interpolation.rst +52 -0
  67. visionsim-0.1.0a1/docs/source/sections/sensors/dvs.rst +2 -0
  68. visionsim-0.1.0a1/docs/source/sections/sensors/imu.rst +83 -0
  69. visionsim-0.1.0a1/docs/source/sections/sensors/rgb.rst +48 -0
  70. visionsim-0.1.0a1/docs/source/sections/sensors/spc.rst +9 -0
  71. visionsim-0.1.0a1/docs/source/sections/sensors/spcs/active_spc.rst +81 -0
  72. visionsim-0.1.0a1/docs/source/sections/sensors/spcs/passive_spc.rst +10 -0
  73. visionsim-0.1.0a1/docs/source/sections/simulation.rst +10 -0
  74. visionsim-0.1.0a1/docs/source/tutorials/extending.rst +22 -0
  75. visionsim-0.1.0a1/docs/source/tutorials/large-dataset.rst +62 -0
  76. visionsim-0.1.0a1/docs/source/tutorials/preexisting-ds.rst +4 -0
  77. visionsim-0.1.0a1/docs/source/tutorials/stereo.rst +2 -0
  78. visionsim-0.1.0a1/examples/README.md +1 -0
  79. visionsim-0.1.0a1/examples/blender/extended_service.py +40 -0
  80. visionsim-0.1.0a1/examples/blender/render_animation.py +11 -0
  81. visionsim-0.1.0a1/examples/blender/render_animation_parallel.py +11 -0
  82. visionsim-0.1.0a1/examples/blender/render_custompath.py +23 -0
  83. visionsim-0.1.0a1/examples/blender/renderpool_progressbar.py +27 -0
  84. visionsim-0.1.0a1/examples/blender/renderpool_simple.py +17 -0
  85. visionsim-0.1.0a1/examples/quickstart.sh +8 -0
  86. visionsim-0.1.0a1/examples/sensors/edh_spc.py +125 -0
  87. visionsim-0.1.0a1/examples/sensors/emulate_active_spcs.ipynb +247 -0
  88. visionsim-0.1.0a1/examples/sensors/ewh_spc.py +126 -0
  89. visionsim-0.1.0a1/examples/sensors/imu.py +39 -0
  90. visionsim-0.1.0a1/examples/sensors/rgb.py +26 -0
  91. visionsim-0.1.0a1/pyproject.toml +78 -0
  92. visionsim-0.1.0a1/scripts/mkdataset.py +411 -0
  93. visionsim-0.1.0a1/tasks.py +195 -0
  94. visionsim-0.1.0a1/tests/__init__.py +0 -0
  95. visionsim-0.1.0a1/tests/test_cli.py +31 -0
  96. visionsim-0.1.0a1/tests/test_color.py +15 -0
  97. visionsim-0.1.0a1/tests/test_dataset.py +235 -0
  98. visionsim-0.1.0a1/tests/test_files/interpolate_transforms/expected_transforms.json +5812 -0
  99. visionsim-0.1.0a1/tests/test_files/interpolate_transforms/transforms.json +2941 -0
  100. visionsim-0.1.0a1/tests/test_interpolate.py +75 -0
  101. visionsim-0.1.0a1/visionsim/__init__.py +0 -0
  102. visionsim-0.1.0a1/visionsim/cli/__init__.py +128 -0
  103. visionsim-0.1.0a1/visionsim/cli/blender.py +150 -0
  104. visionsim-0.1.0a1/visionsim/cli/dataset.py +185 -0
  105. visionsim-0.1.0a1/visionsim/cli/emulate.py +348 -0
  106. visionsim-0.1.0a1/visionsim/cli/ffmpeg.py +360 -0
  107. visionsim-0.1.0a1/visionsim/cli/interpolate.py +79 -0
  108. visionsim-0.1.0a1/visionsim/cli/transforms.py +308 -0
  109. visionsim-0.1.0a1/visionsim/dataset/__init__.py +9 -0
  110. visionsim-0.1.0a1/visionsim/dataset/dataset.py +486 -0
  111. visionsim-0.1.0a1/visionsim/dataset/schema.py +95 -0
  112. visionsim-0.1.0a1/visionsim/emulate/__init__.py +0 -0
  113. visionsim-0.1.0a1/visionsim/emulate/dvs/__init__.py +1 -0
  114. visionsim-0.1.0a1/visionsim/emulate/dvs/v2e/emulator.py +797 -0
  115. visionsim-0.1.0a1/visionsim/emulate/dvs/v2e/emulator_utils.py +348 -0
  116. visionsim-0.1.0a1/visionsim/emulate/imu.py +197 -0
  117. visionsim-0.1.0a1/visionsim/emulate/rgb.py +61 -0
  118. visionsim-0.1.0a1/visionsim/emulate/spc.py +60 -0
  119. visionsim-0.1.0a1/visionsim/interpolate/__init__.py +104 -0
  120. visionsim-0.1.0a1/visionsim/interpolate/pose.py +78 -0
  121. visionsim-0.1.0a1/visionsim/interpolate/rife/IFNet_HDv3.py +117 -0
  122. visionsim-0.1.0a1/visionsim/interpolate/rife/RIFE_HDv3.py +33 -0
  123. visionsim-0.1.0a1/visionsim/interpolate/rife/__init__.py +0 -0
  124. visionsim-0.1.0a1/visionsim/interpolate/rife/inference_img.py +165 -0
  125. visionsim-0.1.0a1/visionsim/interpolate/rife/warplayer.py +34 -0
  126. visionsim-0.1.0a1/visionsim/simulate/__init__.py +0 -0
  127. visionsim-0.1.0a1/visionsim/simulate/blender.py +1740 -0
  128. visionsim-0.1.0a1/visionsim/simulate/nodes/__init__.py +3 -0
  129. visionsim-0.1.0a1/visionsim/simulate/nodes/flow.py +339 -0
  130. visionsim-0.1.0a1/visionsim/simulate/nodes/normals.py +207 -0
  131. visionsim-0.1.0a1/visionsim/simulate/nodes/segmentation.py +87 -0
  132. visionsim-0.1.0a1/visionsim/types.py +17 -0
  133. visionsim-0.1.0a1/visionsim/utils/__init__.py +0 -0
  134. visionsim-0.1.0a1/visionsim/utils/color.py +58 -0
  135. visionsim-0.1.0a1/visionsim/utils/progress.py +160 -0
@@ -0,0 +1,48 @@
1
+ name: CLI Installation
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ matrix:
11
+ # python-version: ["3.8", "3.9", "3.10", "3.11"]
12
+ python-version: ["3.10"]
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Set up Python ${{ matrix.python-version }}
17
+ uses: actions/setup-python@v5
18
+ with:
19
+ python-version: ${{ matrix.python-version }}
20
+ - name: Lint with ruff
21
+ run: |
22
+ python -m pip install --upgrade pip
23
+ pip install ruff
24
+ ruff check --extend-select I tasks.py visionsim/ tests/
25
+ - name: Install VisionSim and dependencies
26
+ run: |
27
+ pip install .[dev]
28
+ ## Note: No test currently requires blender/ffmpeg
29
+ #- name: Install FFmpeg
30
+ # run: |
31
+ # sudo snap install ffmpeg
32
+ # ffmpeg -version
33
+ #- name: Install Blender
34
+ # run: |
35
+ # sudo snap install blender --classic --channel=3.3lts/stable
36
+ # echo -n "BLENDER_PY=$(blender --background --python-expr 'import sys; print(sys.executable, file=sys.stderr)' 2>&1 >/dev/null)" >> $GITHUB_ENV
37
+ # blender --version
38
+ #- name: Install Blender dependencies
39
+ # run: |
40
+ # echo "Found blender python interpreter at $BLENDER_PY"
41
+ # $BLENDER_PY -m ensurepip
42
+ # $BLENDER_PY -m pip install scipy rich
43
+ - name: Build Docs
44
+ run : |
45
+ inv build-docs
46
+ - name: Run Tests
47
+ run: |
48
+ pytest --durations=0
@@ -0,0 +1,121 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+
28
+ # PyInstaller
29
+ # Usually these files are written by a python script from a template
30
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .coverage
42
+ .coverage.*
43
+ .cache
44
+ nosetests.xml
45
+ coverage.xml
46
+ *.cover
47
+ .hypothesis/
48
+ .pytest_cache/
49
+
50
+ # Translations
51
+ *.mo
52
+ *.pot
53
+
54
+ # Django stuff:
55
+ *.log
56
+ local_settings.py
57
+
58
+ # Flask stuff:
59
+ instance/
60
+ .webassets-cache
61
+
62
+ # Scrapy stuff:
63
+ .scrapy
64
+
65
+ # Sphinx documentation
66
+ docs/_build/
67
+
68
+ # PyBuilder
69
+ target/
70
+
71
+ # Jupyter Notebook
72
+ .ipynb_checkpoints
73
+
74
+ # pyenv
75
+ .python-version
76
+
77
+ # celery beat schedule file
78
+ celerybeat-schedule
79
+
80
+ # SageMath parsed files
81
+ *.sage.py
82
+
83
+ # dotenv
84
+ .env
85
+
86
+ # virtualenv
87
+ .venv
88
+ venv/
89
+ ENV/
90
+
91
+ # Spyder project settings
92
+ .spyderproject
93
+ .spyproject
94
+
95
+ # Rope project settings
96
+ .ropeproject
97
+
98
+ # mkdocs documentation
99
+ /site
100
+
101
+ # mypy
102
+ .mypy_cache/
103
+
104
+ # IDE settings
105
+ .vscode/
106
+ .idea/
107
+
108
+ # Custom
109
+ paper/
110
+ out/
111
+ TODO.md
112
+ *.pkl
113
+ *.DS_store
114
+ scenes/
115
+ data/
116
+ cache/
117
+ examples/logs/
118
+ examples/renders/
119
+ examples/*.blend*
120
+ docs/source/apidocs/
121
+ docs/source/clidocs/
@@ -0,0 +1,27 @@
1
+ fail_fast: false
2
+ repos:
3
+ - repo: local
4
+ hooks:
5
+ - id: inv-lint
6
+ name: Lint (with Ruff)
7
+ entry: invoke lint
8
+ pass_filenames: False
9
+ language: system
10
+
11
+ - id: inv-tests
12
+ name: Run Tests
13
+ entry: invoke test
14
+ pass_filenames: False
15
+ language: system
16
+
17
+ - id: inv-clean
18
+ name: Clean Caches
19
+ entry: invoke clean
20
+ pass_filenames: False
21
+ language: system
22
+
23
+ - id: inv-docs
24
+ name: Build Docs
25
+ entry: invoke build-docs
26
+ pass_filenames: False
27
+ language: system
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 WISION Lab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.4
2
+ Name: visionsim
3
+ Version: 0.1.0a1
4
+ Summary: Towards a Sensor-Realistic World Simulator
5
+ Project-URL: GitHub, https://github.com/WISION-Lab/visionsim
6
+ License-Expression: MIT
7
+ License-File: LICENSE
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Requires-Python: >=3.9
18
+ Requires-Dist: imageio
19
+ Requires-Dist: invoke
20
+ Requires-Dist: jsonschema
21
+ Requires-Dist: matplotlib
22
+ Requires-Dist: more-itertools
23
+ Requires-Dist: multiprocess
24
+ Requires-Dist: natsort
25
+ Requires-Dist: numpy
26
+ Requires-Dist: opencv-python
27
+ Requires-Dist: openexr
28
+ Requires-Dist: rich
29
+ Requires-Dist: rpyc
30
+ Requires-Dist: scipy
31
+ Requires-Dist: tdigest
32
+ Requires-Dist: torch
33
+ Requires-Dist: torchvision
34
+ Requires-Dist: tqdm
35
+ Requires-Dist: tyro
36
+ Provides-Extra: dev
37
+ Requires-Dist: click-extra[pygments,sphinx]; extra == 'dev'
38
+ Requires-Dist: coverage; extra == 'dev'
39
+ Requires-Dist: furo; extra == 'dev'
40
+ Requires-Dist: hypothesis; extra == 'dev'
41
+ Requires-Dist: mypy; extra == 'dev'
42
+ Requires-Dist: pre-commit; extra == 'dev'
43
+ Requires-Dist: pytest; extra == 'dev'
44
+ Requires-Dist: ruff; extra == 'dev'
45
+ Requires-Dist: scipy-stubs; (python_version >= '3.10') and extra == 'dev'
46
+ Requires-Dist: sphinx; extra == 'dev'
47
+ Requires-Dist: sphinx-copybutton; extra == 'dev'
48
+ Requires-Dist: sphinxcontrib-napoleon; extra == 'dev'
49
+ Requires-Dist: sphinxcontrib-programoutput>=0.18; extra == 'dev'
50
+ Requires-Dist: sphinxcontrib-video; extra == 'dev'
51
+ Requires-Dist: types-jsonschema; extra == 'dev'
52
+ Description-Content-Type: text/markdown
53
+
54
+ # VisionSIM: Towards a Sensor-Realistic World Simulator
55
+
56
+ A modular and extensible framework that realistically emulates many different sensor types, alongside rich pixel-perfect ground truth annotations across low-, mid-, and high-level scene characteristics, as well as intrinsic and extrinsic camera properties.
57
+
58
+ *Warning:* This project is under heavy development and still considered unstable.
59
+
60
+ ## Installation & Dependencies
61
+
62
+ You'll need:
63
+
64
+ - [Blender](https://www.blender.org/download/) >= 3.3.1, to render new views.
65
+ - [ffmpeg](https://ffmpeg.org/download.html), for visualizations.
66
+ - python dependencies listed in `requirements.txt`.
67
+ - install `visionsim` locally using `pip install .` or using `pip install -e ".[dev]"` if developing.
68
+
69
+ Make sure Blender and ffmpeg are on your PATH.
70
+ The first time you use the renderer, it may ask you to install additional packages into blender's runtime.
71
+
72
+ ## Building the Documentation
73
+
74
+ In the project root, with visionsim installed with the dev dependencies, run:
75
+ ```
76
+ inv clean build-docs --preview
77
+ ```
@@ -0,0 +1,24 @@
1
+ # VisionSIM: Towards a Sensor-Realistic World Simulator
2
+
3
+ A modular and extensible framework that realistically emulates many different sensor types, alongside rich pixel-perfect ground truth annotations across low-, mid-, and high-level scene characteristics, as well as intrinsic and extrinsic camera properties.
4
+
5
+ *Warning:* This project is under heavy development and still considered unstable.
6
+
7
+ ## Installation & Dependencies
8
+
9
+ You'll need:
10
+
11
+ - [Blender](https://www.blender.org/download/) >= 3.3.1, to render new views.
12
+ - [ffmpeg](https://ffmpeg.org/download.html), for visualizations.
13
+ - python dependencies listed in `requirements.txt`.
14
+ - install `visionsim` locally using `pip install .` or using `pip install -e ".[dev]"` if developing.
15
+
16
+ Make sure Blender and ffmpeg are on your PATH.
17
+ The first time you use the renderer, it may ask you to install additional packages into blender's runtime.
18
+
19
+ ## Building the Documentation
20
+
21
+ In the project root, with visionsim installed with the dev dependencies, run:
22
+ ```
23
+ inv clean build-docs --preview
24
+ ```
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,19 @@
1
+ table.borderless,
2
+ table.borderless td,
3
+ table.borderless th {
4
+ border: 0px solid transparent;
5
+ padding: 0px;
6
+ padding-right: 0.5em;
7
+ box-shadow: none
8
+ }
9
+
10
+ /* For ANSI Colors, assume green is new diff so add underline, strikethrough for red */
11
+ .-C-Green {
12
+ color: #00A000 !important;
13
+ text-decoration: underline;
14
+ }
15
+
16
+ .-C-Red {
17
+ color: #A40000 !important;
18
+ text-decoration: line-through;
19
+ }