Polyscope is a Python library that provides an interactive 3D viewer and user interface for visualizing a variety of 3D data types, including point clouds, surface meshes, volumes, and general purpose quantities. It is built on a C++ core for performance and offers an intuitive GUI. The current version is 2.6.1, and it maintains a frequent release cadence, typically with minor versions released every 1-2 months.
pip install polyscopeVerified import paths — ran on the pinned version, not inferred.
This quickstart initializes the Polyscope viewer, registers a simple random point cloud and a basic surface mesh with distinct colors, then displays the interactive GUI.
Consult the official documentation and release notes for v2.0.0 to identify specific API changes and update your code accordingly.
Ensure you are using Polyscope v2.4.0 or newer for improved headless rendering support. Refer to Polyscope documentation for platform-specific EGL or headless configuration instructions.
Sanitize all input arrays (e.g., vertices, normals, scalar quantities) to ensure they do not contain `NaN` or `Inf` values using functions like `numpy.nan_to_num()` before passing them to Polyscope.
No fix needed, this is a behavior change. Users will need to adapt to the new default panning interaction.
Upgrade to Polyscope v2.5.0 or newer for improved UI scaling and text clarity on high-DPI monitors.
Call `ps.init()` at the beginning of your script, typically after imports and before any other Polyscope-specific functions are used.
Ensure your environment meets the build requirements if installing from source. For pre-built wheels, try `pip install polyscope --no-cache-dir` to force a fresh install. Check GitHub issues for specific platform solutions if the problem persists.
Ensure `ps.show()` is called at the very end of your script to keep the GUI open. For advanced use cases or integration in existing loops, consider `ps.frame_tick()` instead of `ps.show()`.
Inspect and sanitize your input data. Use `numpy.nan_to_num()` or similar methods to replace `NaN`/`Inf` values with zeros or other valid numbers before passing arrays to Polyscope.