simview 3.3__tar.gz → 3.5__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.
- simview-3.5/PKG-INFO +136 -0
- simview-3.5/README.md +103 -0
- {simview-3.3 → simview-3.5}/pyproject.toml +7 -2
- simview-3.5/simview/__main__.py +550 -0
- simview-3.5/simview/diff.py +394 -0
- simview-3.5/simview/info.py +561 -0
- simview-3.5/simview/render.py +141 -0
- {simview-3.3 → simview-3.5}/simview/static/js/components/InteractionController.js +77 -6
- {simview-3.3 → simview-3.5}/simview/static/js/objects/Terrain.js +123 -11
- {simview-3.3 → simview-3.5}/simview/static/js/ui/Controls.js +76 -0
- {simview-3.3 → simview-3.5}/simview/static/js/ui/ErrorMetrics.js +8 -2
- {simview-3.3 → simview-3.5}/simview/static/js/ui/Legend.js +18 -2
- simview-3.5/simview/static/js/utils/batchPresets.js +28 -0
- simview-3.5/simview/terrain.py +569 -0
- simview-3.5/simview.egg-info/PKG-INFO +136 -0
- {simview-3.3 → simview-3.5}/simview.egg-info/SOURCES.txt +8 -0
- {simview-3.3 → simview-3.5}/simview.egg-info/requires.txt +3 -0
- simview-3.5/tests/test_cli.py +739 -0
- simview-3.5/tests/test_diff.py +303 -0
- simview-3.5/tests/test_info.py +255 -0
- simview-3.5/tests/test_terrain_query.py +366 -0
- simview-3.3/PKG-INFO +0 -553
- simview-3.3/README.md +0 -522
- simview-3.3/simview/__main__.py +0 -172
- simview-3.3/simview.egg-info/PKG-INFO +0 -553
- simview-3.3/tests/test_cli.py +0 -169
- {simview-3.3 → simview-3.5}/LICENSE +0 -0
- {simview-3.3 → simview-3.5}/MANIFEST.in +0 -0
- {simview-3.3 → simview-3.5}/setup.cfg +0 -0
- {simview-3.3 → simview-3.5}/simview/__init__.py +0 -0
- {simview-3.3 → simview-3.5}/simview/launcher.py +0 -0
- {simview-3.3 → simview-3.5}/simview/live.py +0 -0
- {simview-3.3 → simview-3.5}/simview/merge.py +0 -0
- {simview-3.3 → simview-3.5}/simview/model.py +0 -0
- {simview-3.3 → simview-3.5}/simview/py.typed +0 -0
- {simview-3.3 → simview-3.5}/simview/scene.py +0 -0
- {simview-3.3 → simview-3.5}/simview/server.py +0 -0
- {simview-3.3 → simview-3.5}/simview/state.py +0 -0
- {simview-3.3 → simview-3.5}/simview/static/css/controls.css +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/SimView.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/components/AnimationController.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/components/BatchManager.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/components/InteractionControls.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/components/Scene.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/components/StateStore.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/config.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/main.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/objects/Body.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/objects/StaticObject.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/objects/utils.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/ui/AnalysisPanel.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/ui/BatchLegend.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/ui/BodyStateWindow.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/ui/PlaybackControls.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/ui/ScalarPlotter.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/blobCodec.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/bodyTransforms.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/csv.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/errorMath.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/injectStyles.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/interpolate.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/liveFollow.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/loadRecordingLibs.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/js/utils/viewState.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/index.min.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/Color.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/chroma.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/colors/colorbrewer.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/colors/w3cx11.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/average.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/bezier.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/blend.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/cubehelix.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/mix.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/random.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/generator/scale.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/_hsx.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/hcg.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/hsi.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/hsl.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/hsv.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/lab.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/lch.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/lrgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/num.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/oklab.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/oklch.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/interpolator/rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/cmyk/cmyk2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/cmyk/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/cmyk/rgb2cmyk.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/css2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/hsl2css.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/lab2css.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/lch2css.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/oklab2css.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/oklch2css.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/css/rgb2css.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/gl/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hcg/hcg2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hcg/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hcg/rgb2hcg.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hex/hex2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hex/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hex/rgb2hex.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsi/hsi2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsi/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsi/rgb2hsi.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsl/hsl2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsl/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsl/rgb2hsl.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsv/hsv2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsv/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/hsv/rgb2hsv.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/input.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lab/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lab/lab-constants.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lab/lab2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lab/rgb2lab.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lch/hcl2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lch/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lch/lab2lch.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lch/lch2lab.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lch/lch2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/lch/rgb2lch.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/named/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/num/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/num/num2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/num/rgb2num.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/oklab/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/oklab/oklab2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/oklab/rgb2oklab.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/oklch/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/oklch/oklch2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/oklch/rgb2oklch.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/rgb/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/temp/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/temp/rgb2temperature.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/io/temp/temperature2rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/alpha.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/clipped.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/darken.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/get.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/luminance.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/mix.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/premultiply.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/saturate.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/set.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/ops/shade.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/analyze.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/clip_rgb.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/contrast.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/contrastAPCA.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/delta-e.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/distance.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/index.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/last.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/limit.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/multiply-matrices.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/scales.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/type.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/unpack.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/utils/valid.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/chroma-js-3.1.2/src/version.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/download.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/js-colormaps.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/tar.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/three-0.174.0/addons/controls/OrbitControls.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/three-0.174.0/addons/libs/lil-gui.module.min.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/three-0.174.0/three.core.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/three-0.174.0/three.module.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/uPlot.esm.js +0 -0
- {simview-3.3 → simview-3.5}/simview/static/lib/uPlot.min.css +0 -0
- {simview-3.3 → simview-3.5}/simview/static/textures/contacts/red-cross0.png +0 -0
- {simview-3.3 → simview-3.5}/simview/static/textures/points/ball0.png +0 -0
- {simview-3.3 → simview-3.5}/simview/static/textures/points/ball1.png +0 -0
- {simview-3.3 → simview-3.5}/simview/templates/index.html +0 -0
- {simview-3.3 → simview-3.5}/simview/utils.py +0 -0
- {simview-3.3 → simview-3.5}/simview.egg-info/dependency_links.txt +0 -0
- {simview-3.3 → simview-3.5}/simview.egg-info/entry_points.txt +0 -0
- {simview-3.3 → simview-3.5}/simview.egg-info/top_level.txt +0 -0
- {simview-3.3 → simview-3.5}/tests/test_columnar_states.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_contacts.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_launcher.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_live.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_merge.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_roundtrip.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_scene.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_server.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_show.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_terrain.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_trajectory.py +0 -0
- {simview-3.3 → simview-3.5}/tests/test_utils.py +0 -0
simview-3.5/PKG-INFO
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: simview
|
|
3
|
+
Version: 3.5
|
|
4
|
+
Summary: THREE.js-based simulation visualization tool
|
|
5
|
+
Author-email: Jan Vlk <vlkjan6@fel.cvut.cz>, Ales Kucera <kuceral4@fel.cvut.cz>, David Korcak <david.korcak@gmail.com>
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://vlk-jan.github.io/simview/
|
|
8
|
+
Project-URL: Repository, https://github.com/vlk-jan/simview
|
|
9
|
+
Project-URL: Issues, https://github.com/vlk-jan/simview/issues
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
17
|
+
Requires-Python: >=3.12
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: fastapi>=0.135.3
|
|
21
|
+
Requires-Dist: httptools>=0.7.1; sys_platform != "win32"
|
|
22
|
+
Requires-Dist: jinja2>=3.1.6
|
|
23
|
+
Requires-Dist: orjson>=3.11.8
|
|
24
|
+
Requires-Dist: uvicorn>=0.44.0
|
|
25
|
+
Requires-Dist: uvloop>=0.22.1; sys_platform != "win32"
|
|
26
|
+
Provides-Extra: authoring
|
|
27
|
+
Requires-Dist: torch; extra == "authoring"
|
|
28
|
+
Requires-Dist: einops; extra == "authoring"
|
|
29
|
+
Requires-Dist: numpy; extra == "authoring"
|
|
30
|
+
Provides-Extra: render
|
|
31
|
+
Requires-Dist: playwright>=1.40; extra == "render"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# SimView Visualizer
|
|
35
|
+
|
|
36
|
+
[](https://vlk-jan.github.io/simview/)
|
|
37
|
+
[](https://vlk-jan.github.io/assets/demos/simview/)
|
|
38
|
+
|
|
39
|
+
**SimView** is a powerful and interactive tool for visualizing 3D models and terrain data in simulations. It enables you to explore and analyze multiple simulation scenarios (batches) within a shared environment, all defined through an intuitive JSON format or a Python API.
|
|
40
|
+
|
|
41
|
+
Whether you're simulating physical objects or comparing different runs, SimView provides a flexible and efficient way to bring your data to life using a web-based interface powered by Three.js.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Documentation
|
|
46
|
+
|
|
47
|
+
Full documentation — usage guides, CLI reference, the JSON format specification,
|
|
48
|
+
the API reference, and developer/architecture docs — is available at:
|
|
49
|
+
|
|
50
|
+
**[https://vlk-jan.github.io/simview/](https://vlk-jan.github.io/simview/)**
|
|
51
|
+
|
|
52
|
+
Want to try it without installing anything? There's a
|
|
53
|
+
[live browser demo](https://vlk-jan.github.io/assets/demos/simview/)
|
|
54
|
+
(static snapshot, no backend needed).
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Features
|
|
59
|
+
|
|
60
|
+
- **Batched Simulations**: Visualize multiple simulation instances side-by-side.
|
|
61
|
+
- **Shared Terrain**: Efficient rendering with shared terrain across all batches.
|
|
62
|
+
- **Interactive UI**: Web-based controls for playback, camera, and data inspection.
|
|
63
|
+
- **Python API**: Easy-to-use API for generating scenes and launching the visualizer directly from your code.
|
|
64
|
+
- **JSON Support**: Load and save simulation data using a portable JSON format.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Quick Start
|
|
69
|
+
|
|
70
|
+
The easiest way to get started is to run the provided example script:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
python example.py
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
This script demonstrates how to use the Python API to create a simulation with wavy terrain, dynamic bodies, and time-series data.
|
|
77
|
+
|
|
78
|
+
The Python authoring API (`simview.scene`, `simview.state`, `simview.model`) depends on
|
|
79
|
+
`torch` and `einops`. Install them with the optional `authoring` extra shown below.
|
|
80
|
+
Only these are needed to *build* simulations; *viewing* an existing JSON file does not
|
|
81
|
+
require `torch`.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Installation
|
|
86
|
+
|
|
87
|
+
Requires **Python 3.12+**.
|
|
88
|
+
|
|
89
|
+
### From PyPI
|
|
90
|
+
|
|
91
|
+
To only view existing simulation JSON files:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install simview
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
To also author simulations from Python (installs `torch` and `einops`):
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
pip install "simview[authoring]"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### From source
|
|
104
|
+
|
|
105
|
+
For working on SimView itself (or to track an unreleased commit), install an
|
|
106
|
+
editable checkout instead:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
pip install -e . # viewing only
|
|
110
|
+
pip install -e ".[authoring]" # viewing + authoring
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
For independent use of this repository, use `venv` or `uv`:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
python -m venv .venv
|
|
117
|
+
source .venv/bin/activate
|
|
118
|
+
pip install -e ".[authoring]"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
uv sync --extra authoring
|
|
123
|
+
source .venv/bin/activate
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## License
|
|
129
|
+
|
|
130
|
+
SimView is distributed under the [BSD 3-Clause License](LICENSE). The web interface
|
|
131
|
+
vendors [uPlot](https://github.com/leeoniya/uPlot), [three.js](https://github.com/mrdoob/three.js),
|
|
132
|
+
and [chroma-js](https://github.com/gka/chroma.js) (all MIT licensed) under
|
|
133
|
+
`simview/static/lib/` so the viewer works fully offline — see the
|
|
134
|
+
[documentation](https://vlk-jan.github.io/simview/dev/architecture/#vendored-third-party-libraries)
|
|
135
|
+
for details. All third-party libraries used by SimView are permissively licensed
|
|
136
|
+
(MIT/BSD), so there are no licensing restrictions on commercial use.
|
simview-3.5/README.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# SimView Visualizer
|
|
2
|
+
|
|
3
|
+
[](https://vlk-jan.github.io/simview/)
|
|
4
|
+
[](https://vlk-jan.github.io/assets/demos/simview/)
|
|
5
|
+
|
|
6
|
+
**SimView** is a powerful and interactive tool for visualizing 3D models and terrain data in simulations. It enables you to explore and analyze multiple simulation scenarios (batches) within a shared environment, all defined through an intuitive JSON format or a Python API.
|
|
7
|
+
|
|
8
|
+
Whether you're simulating physical objects or comparing different runs, SimView provides a flexible and efficient way to bring your data to life using a web-based interface powered by Three.js.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Documentation
|
|
13
|
+
|
|
14
|
+
Full documentation — usage guides, CLI reference, the JSON format specification,
|
|
15
|
+
the API reference, and developer/architecture docs — is available at:
|
|
16
|
+
|
|
17
|
+
**[https://vlk-jan.github.io/simview/](https://vlk-jan.github.io/simview/)**
|
|
18
|
+
|
|
19
|
+
Want to try it without installing anything? There's a
|
|
20
|
+
[live browser demo](https://vlk-jan.github.io/assets/demos/simview/)
|
|
21
|
+
(static snapshot, no backend needed).
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Features
|
|
26
|
+
|
|
27
|
+
- **Batched Simulations**: Visualize multiple simulation instances side-by-side.
|
|
28
|
+
- **Shared Terrain**: Efficient rendering with shared terrain across all batches.
|
|
29
|
+
- **Interactive UI**: Web-based controls for playback, camera, and data inspection.
|
|
30
|
+
- **Python API**: Easy-to-use API for generating scenes and launching the visualizer directly from your code.
|
|
31
|
+
- **JSON Support**: Load and save simulation data using a portable JSON format.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
The easiest way to get started is to run the provided example script:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
python example.py
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This script demonstrates how to use the Python API to create a simulation with wavy terrain, dynamic bodies, and time-series data.
|
|
44
|
+
|
|
45
|
+
The Python authoring API (`simview.scene`, `simview.state`, `simview.model`) depends on
|
|
46
|
+
`torch` and `einops`. Install them with the optional `authoring` extra shown below.
|
|
47
|
+
Only these are needed to *build* simulations; *viewing* an existing JSON file does not
|
|
48
|
+
require `torch`.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
Requires **Python 3.12+**.
|
|
55
|
+
|
|
56
|
+
### From PyPI
|
|
57
|
+
|
|
58
|
+
To only view existing simulation JSON files:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pip install simview
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
To also author simulations from Python (installs `torch` and `einops`):
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install "simview[authoring]"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### From source
|
|
71
|
+
|
|
72
|
+
For working on SimView itself (or to track an unreleased commit), install an
|
|
73
|
+
editable checkout instead:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pip install -e . # viewing only
|
|
77
|
+
pip install -e ".[authoring]" # viewing + authoring
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
For independent use of this repository, use `venv` or `uv`:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
python -m venv .venv
|
|
84
|
+
source .venv/bin/activate
|
|
85
|
+
pip install -e ".[authoring]"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
uv sync --extra authoring
|
|
90
|
+
source .venv/bin/activate
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## License
|
|
96
|
+
|
|
97
|
+
SimView is distributed under the [BSD 3-Clause License](LICENSE). The web interface
|
|
98
|
+
vendors [uPlot](https://github.com/leeoniya/uPlot), [three.js](https://github.com/mrdoob/three.js),
|
|
99
|
+
and [chroma-js](https://github.com/gka/chroma.js) (all MIT licensed) under
|
|
100
|
+
`simview/static/lib/` so the viewer works fully offline — see the
|
|
101
|
+
[documentation](https://vlk-jan.github.io/simview/dev/architecture/#vendored-third-party-libraries)
|
|
102
|
+
for details. All third-party libraries used by SimView are permissively licensed
|
|
103
|
+
(MIT/BSD), so there are no licensing restrictions on commercial use.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "simview"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.5"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
requires-python = ">=3.12"
|
|
10
10
|
license = "BSD-3-Clause"
|
|
@@ -34,7 +34,7 @@ dependencies = [
|
|
|
34
34
|
]
|
|
35
35
|
|
|
36
36
|
[project.urls]
|
|
37
|
-
Homepage = "https://
|
|
37
|
+
Homepage = "https://vlk-jan.github.io/simview/"
|
|
38
38
|
Repository = "https://github.com/vlk-jan/simview"
|
|
39
39
|
Issues = "https://github.com/vlk-jan/simview/issues"
|
|
40
40
|
|
|
@@ -42,6 +42,10 @@ Issues = "https://github.com/vlk-jan/simview/issues"
|
|
|
42
42
|
# Needed only to author simulations via the Python API (simview.scene / state / model).
|
|
43
43
|
# Viewing an existing JSON file does not require these.
|
|
44
44
|
authoring = ["torch", "einops", "numpy"]
|
|
45
|
+
# Needed only for `simview render` (headless PNG screenshots, e.g. from a
|
|
46
|
+
# SLURM job with no display). Also requires a one-time `playwright install
|
|
47
|
+
# chromium` to fetch the browser binary itself.
|
|
48
|
+
render = ["playwright>=1.40"]
|
|
45
49
|
|
|
46
50
|
[project.scripts]
|
|
47
51
|
simview = "simview.__main__:main"
|
|
@@ -61,6 +65,7 @@ dev = [
|
|
|
61
65
|
"pyright>=1.1.411",
|
|
62
66
|
"websockets>=16.1",
|
|
63
67
|
]
|
|
68
|
+
docs = ["mkdocs>=1.6", "mkdocs-material>=9.5", "mkdocstrings[python]>=0.27"]
|
|
64
69
|
|
|
65
70
|
[tool.ruff]
|
|
66
71
|
target-version = "py312"
|