{"id":13738201,"url":"https://github.com/plotly/dash-slicer","last_synced_at":"2026-03-17T20:09:47.062Z","repository":{"id":43343594,"uuid":"307724955","full_name":"plotly/dash-slicer","owner":"plotly","description":"A volume slicer for Dash","archived":false,"fork":false,"pushed_at":"2025-03-09T04:56:31.000Z","size":113,"stargazers_count":26,"open_issues_count":14,"forks_count":8,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-11T16:59:07.912Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dash.plotly.com/slicer","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plotly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-10-27T14:22:59.000Z","updated_at":"2025-05-12T12:22:37.000Z","dependencies_parsed_at":"2025-12-14T19:02:20.692Z","dependency_job_id":null,"html_url":"https://github.com/plotly/dash-slicer","commit_stats":{"total_commits":40,"total_committers":5,"mean_commits":8.0,"dds":"0.19999999999999996","last_synced_commit":"f60bc170be8fd4df6f5ac5b40b0af516cd578030"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/plotly/dash-slicer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Fdash-slicer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Fdash-slicer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Fdash-slicer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Fdash-slicer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plotly","download_url":"https://codeload.github.com/plotly/dash-slicer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plotly%2Fdash-slicer/sbom","scorecard":{"id":738055,"data":{"date":"2025-08-11","repo":{"name":"github.com/plotly/dash-slicer","commit":"4b1223dcd29fc7523d5fe3efec02fd849518a603"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 8/28 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/plotly/dash-slicer/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/plotly/dash-slicer/ci.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:49","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:50","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:51","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 23 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"64 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-35 / GHSA-547x-748v-vp6p","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: GHSA-3c5c-7235-994j","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: PYSEC-2020-77 / GHSA-3xv8-3j54-hgrp","Warn: Project is vulnerable to: PYSEC-2020-80 / GHSA-43fq-w8qq-v88h","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2020-172 / GHSA-5gm3-px64-rw72","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2020-78 / GHSA-8843-m7mw-mxqm","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2014-87 / GHSA-8m9x-pxwq-j236","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2016-6 / GHSA-8xjv-v9xq-m5h9","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2014-10 / GHSA-cfmr-38g9-f2h7","Warn: Project is vulnerable to: PYSEC-2020-76 / GHSA-cqhg-xjhh-p8hf","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2015-16 / GHSA-h5rf-vgqx-wjv2","Warn: Project is vulnerable to: PYSEC-2016-5 / GHSA-hggx-3h72-49ww","Warn: Project is vulnerable to: PYSEC-2020-84 / GHSA-hj69-c76v-86wr","Warn: Project is vulnerable to: PYSEC-2016-7 / GHSA-hvr8-466p-75rh","Warn: Project is vulnerable to: PYSEC-2015-15 / GHSA-j6f7-g425-4gmx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: PYSEC-2019-110 / GHSA-j7mj-748x-7p78","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2020-83 / GHSA-p49h-hjvm-jg3h","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2020-82 / GHSA-r7rm-8j6h-r933","Warn: Project is vulnerable to: PYSEC-2014-23 / GHSA-r854-96gq-rfg3","Warn: Project is vulnerable to: PYSEC-2016-8 / GHSA-rwr3-c2q8-gm56","Warn: Project is vulnerable to: PYSEC-2020-81 / GHSA-vcqg-3p29-xw73","Warn: Project is vulnerable to: PYSEC-2020-79 / GHSA-vj42-xq3r-hr3r","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2016-9 / GHSA-w4vg-rf63-f3j3","Warn: Project is vulnerable to: PYSEC-2014-22 / GHSA-x895-2wrm-hvp7","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: PYSEC-2021-137","Warn: Project is vulnerable to: PYSEC-2021-138","Warn: Project is vulnerable to: PYSEC-2021-317","Warn: Project is vulnerable to: PYSEC-2021-38","Warn: Project is vulnerable to: PYSEC-2021-39","Warn: Project is vulnerable to: PYSEC-2021-94","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: PYSEC-2018-55 / GHSA-32pc-xphx-q4f6","Warn: Project is vulnerable to: GHSA-hc5x-x2vx-497g","Warn: Project is vulnerable to: GHSA-w3h3-4rj7-4ph4"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T16:29:44.034Z","repository_id":43343594,"created_at":"2025-08-22T16:29:44.034Z","updated_at":"2025-08-22T16:29:44.034Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30630187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T03:02:14.228Z","updated_at":"2026-03-17T20:09:47.024Z","avatar_url":"https://github.com/plotly.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"![CI](https://github.com/plotly/dash-slicer/workflows/CI/badge.svg)\n\n# dash_slicer\n\nA volume slicer for Dash\n\nCreate slice views along a given dimension, and allows multiple such\nviews to be linked, to help with navigation. Supports anisotropic data,\nmask overlays, and more.\n\n\u003cimg width='700' src='https://user-images.githubusercontent.com/3015475/102329845-28a67880-3f89-11eb-82de-2cc2ff463a53.png'\u003e\u003c/img\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://dash.plotly.com/project-maintenance\"\u003e\n    \u003cimg src=\"https://dash.plotly.com/assets/images/maintained-by-community.png\" width=\"600px\" alt=\"Maintained by the Plotly Community\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Status\n\nThis work is marked as alpha - some essential features are still in\ndevelopment, and some parts of the API may change in future releases.\n\n\n## Installation\n\n```\n$ pip install dash-slicer\n```\n\nDash-slicer depends on Python 3.6+ plus some [dependencies](requirements.txt).\n\n\n## Usage example\n\n```py\nimport dash\nfrom dash import html\nfrom dash_slicer import VolumeSlicer\nimport imageio\n\napp = dash.Dash(__name__, update_title=None)\n\nvol = imageio.volread(\"imageio:stent.npz\")\nslicer = VolumeSlicer(app, vol)\n\napp.layout = html.Div([slicer.graph, slicer.slider, *slicer.stores])\n\nif __name__ == \"__main__\":\n    app.run_server(debug=True, dev_tools_props_check=False)\n```\n\nSee [the guide](https://dash.plotly.com/slicer) for more examples and explanations.\nA complete app that uses dash-slicer is [dash-vocid-xray](https://dash-gallery.plotly.host/dash-covid-xray/)\n([source](https://github.com/plotly/dash-sample-apps/blob/master/apps/dash-covid-xray/app.py)).\n\n\n\n## License\n\nThis code is distributed under the MIT license.\n\n\n## Developers\n\n\n* Make sure that you have Python with the appropriate dependencies installed, e.g. via `venv`.\n* Run `pip install -e .` to do an in-place install of the package.\n* Run the examples using e.g. `python examples/all_features.py`\n\n* Use `black .` to autoformat.\n* Use `flake8 .` to lint.\n* Use `pytest .` to run the tests.\n* Use `python update_docs_in_readme.py` to update the readme when needed.\n\nOn every PR, an app with the same name as your branch is deployed to the Dash\nplayground instance so that you can change whether your changes did not break\nthe package.\n\nRelease procedure:\n\n* Bump version in `__init__.py` (and commit this change).\n* Run `git tag v?.? \u0026\u0026 git push origin v?.?`\n* On GH, turn that tag into a release and write release notes.\n* Clear the dist dir.\n* Run `python setup.py sdist bdist_wheel`\n* Run `twine upload dist/*`\n* Bump version of dash-slicer in dash-docs.\n\n\n## Reference\n\n\u003c!--- The below is autogenerated - do not edit ---\u003e\n\n### The VolumeSlicer class\n\n**class `VolumeSlicer(app, volume, *, spacing=None, origin=None, axis=0, reverse_y=True, clim=None, scene_id=None, color=None, thumbnail=True)`**\n\nA slicer object to show 3D image data in Dash. Upon\ninstantiation one can provide the following parameters:\n\n* `app` (`dash.Dash`): the Dash application instance.\n* `volume` (`ndarray`): the 3D numpy array to slice through. The dimensions\n  are assumed to be in zyx order. If this is not the case, you can\n  use `np.swapaxes` to make it so.\n* `spacing` (tuple of `float`): the distance between voxels for each\n  dimension (zyx). The spacing and origin are applied to make the slice\n  drawn in \"scene space\" rather than \"voxel space\".\n* `origin` (tuple of `float`): the offset for each dimension (zyx).\n* `axis` (`int`): the dimension to slice in. Default 0.\n* `reverse_y` (`bool`): whether to reverse the y-axis, so that the origin of\n  the slice is in the top-left, rather than bottom-left. Default True.\n  Note: setting this to False affects performance, see #12. This has been\n  fixed, but the fix has not yet been released with Dash.\n* `clim` (tuple of `float`): the (initial) contrast limits. Default the min\n  and max of the volume.\n* `scene_id` (`str`): the scene that this slicer is part of. Slicers\n  that have the same scene-id show each-other's positions with\n  line indicators. By default this is derived from `id(volume)`.\n* `color` (`str`): the color for this slicer. By default the color\n  is a shade of blue, orange, or green, depending on the axis. Set\n  to empty string to prevent drawing indicators for this slicer.\n* `thumbnail` (`int` or `bool`): the preferred size of low-resolution data\n  to be uploaded to the client. If `False`, the full-resolution data are\n  uploaded client-side. If `True` (default), a default value of 32 is used.\n\nNote that this is not a Dash Component. The components that make\nup the slicer (and which must be present in the layout) are:\n`slicer.graph`, `slicer.slider`, and `slicer.stores`.\n\n**method `VolumeSlicer.create_overlay_data(mask, color=None)`**\n\nGiven a 3D mask array, create an object that can be used as\noutput for `slicer.overlay_data`. Set mask to `None` to clear the mask.\nThe color can be a hex color or an rgb/rgba tuple. Alternatively,\ncolor can be a list of such colors, defining a colormap.\n\n**property `VolumeSlicer.axis`** (`int`): The axis to slice.\n\n**property `VolumeSlicer.clim`**: A `dcc.Store` to be used as Output, representing the contrast\nlimits as a 2-element tuple. This value should probably not be\nchanged too often (e.g. on slider drag) because the thumbnail\ndata is recreated on each change.\n\n**property `VolumeSlicer.extra_traces`**: A `dcc.Store` to be used as an Output to define additional\ntraces to be shown in this slicer. The data must be a list of\ndictionaries, with each dict representing a raw trace object.\n\n**property `VolumeSlicer.graph`**: The `dcc.Graph` for this slicer. Use `graph.figure` to access the\nPlotly Figure object.\n\n**property `VolumeSlicer.nslices`** (`int`): The number of slices for this slicer.\n\n**property `VolumeSlicer.overlay_data`**: A `dcc.Store` to be used an Output for the overlay data. The\nform of this data is considered an implementation detail; users\nare expected to use `create_overlay_data` to create it.\n\n**property `VolumeSlicer.scene_id`** (`str`): The id of the \"virtual scene\" for this slicer. Slicers that have\nthe same scene_id show each-other's positions.\n\n**property `VolumeSlicer.slider`**: The `dcc.Slider` to change the index for this slicer. If you\ndon't want to use the slider, wrap it in a div with style\n`display: none`.\n\n**property `VolumeSlicer.state`**: A `dcc.Store` representing the current state of the slicer (present\nin slicer.stores). This store is intended for use as State or Input.\nIts data is a dict with the fields:\n\n* \"index\": the integer slice index.\n* \"index_changed\": a bool indicating whether the index changed since last time.\n* \"xrange\": the view range (2 floats) in the x-dimension (2D).\n* \"yrange\": the view range (2 floats) in the y-dimension (2D).\n* \"zpos\": the float position aling the axis, in scene coordinates.\n* \"axis\": the axis (int) for this slicer.\n* \"color\": the color (str) for this slicer.\n\nThe id of the store is a dictionary so it can be used in a\npattern matching Input. Its field are: context, scene, name.\nWhere scene is the scene_id and name is \"state\".\n\n**property `VolumeSlicer.stores`**: A list of `dcc.Store` objects that the slicer needs to work.\nThese must be added to the app layout. Note that public stores\nlike `state` and `extra_traces` are also present in this list.\n\n\n\n### Reacting to slicer state\n\nIt is possible to get notified of updates to slicer position and\nview ranges. To get this for all slicers with a specific scene_id, create\na [pattern matching input](https://dash.plotly.com/pattern-matching-callbacks)\nlike this:\n```py\nInput({\"scene\": scene_id, \"context\": ALL, \"name\": \"state\"})\n```\n\nSee the `state` property for details.\n\n\n### Setting slicer positions\n\nTo programatically set the position of the slicer, create a `dcc.Store` with\na dictionary-id that has the following fields:\n\n* 'context': a unique name for this store.\n* 'scene': the scene_id of the slicer objects to set the position for.\n* 'name': 'setpos'\n\nThe value in the store must be an 3-element tuple (x, y, z) in scene coordinates.\nTo apply the position for one dimension only, use e.g `(None, None, x)`.\n\n\n### Performance tips\n\nThere tends to be a lot of interaction in an application that contains\nslicer objects. To realize a smooth user experience, performance matters.\nHere are some tips to help with that:\n\n* Most importantly, when running the server in debug mode, consider setting\n  `dev_tools_props_check=False`.\n* Also consider creating the `Dash` application with `update_title=None`.\n* Setting `reverse_y` to False negatively affects performance. This will be\n  fixed in a future version of Plotly/Dash.\n* For a smooth experience, avoid triggering unnecessary figure updates.\n* When adding a callback that uses the slicer position, use the (rate limited)\n  `state` store rather than the slider value.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplotly%2Fdash-slicer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplotly%2Fdash-slicer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplotly%2Fdash-slicer/lists"}