plotoptix


Nameplotoptix JSON
Version 0.18.1 PyPI version JSON
download
home_pagehttps://rnd.team/plotoptix
SummaryData visualisation in Python based on NVIDIA OptiX ray tracing framework.
upload_time2024-03-10 17:57:20
maintainer
docs_urlNone
authorRobert Sulej, R&D Team
requires_python
license
keywords gpu nvidia optix ray-tracing path-tracing visualisation generative plot animation real-time
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            PlotOptiX
=========

.. image:: https://img.shields.io/pypi/v/plotoptix.svg
   :target: https://pypi.org/project/plotoptix
   :alt: Latest PlotOptiX version
.. image:: https://img.shields.io/pypi/dm/plotoptix.svg
   :target: https://pypi.org/project/plotoptix
   :alt: PlotOptiX downloads by pip install
.. image:: https://img.shields.io/badge/PATREON-Become%20a%20Patron!-008a04.svg
   :target: https://www.patreon.com/bePatron?u=33442314
   :alt: Become a Patron!

**Data visualisation and ray tracing in Python based on NVIDIA OptiX framework.**

`Documentation <https://plotoptix.rnd.team>`__

- Sample images created with PlotOptiX: `Behance <https://www.behance.net/RnDTeam>`__, `Instagram <https://www.instagram.com/rnd.team.studio/>`__, and `Facebook <https://www.facebook.com/rndteam>`__.
- Join `Patreon <https://www.patreon.com/rndteam?fan_landing=true>`__ for news, release plans and hi-res content.

PlotOptiX is a 3D `ray tracing <https://en.wikipedia.org/wiki/Ray_tracing_(graphics)>`__ package for Python, aimed at easy and aesthetic visualization
of large datasets (and small as well). Data features can be represented in images as a position, size/thickness and color of primitives
of several basic shapes, or projected onto surfaces of objects in form of a color textures and displacement maps. Triangular meshes,
generated in the code or loaded from a file, are supported as well. All is finished with a photorealistic lighting, depth of field, and many other
physically based effects simulated with a high quality.

No need to write shaders, intersection algorithms, handle 3D scene technicalities. Basic usage is even more simple than with
`matplotlib <https://matplotlib.org/gallery/mplot3d/scatter3d.html>`__:

.. code-block:: python

   import numpy as np
   from plotoptix import TkOptiX

   n = 1000000                                  # 1M points, better not try this with matplotlib
   xyz = 3 * (np.random.random((n, 3)) - 0.5)   # random 3D positions
   r = 0.02 * np.random.random(n) + 0.002       # random radii

   plot = TkOptiX()
   plot.set_data("my plot", xyz, r=r)
   plot.show()

... but PlotOptiX is much faster on large data, and, with all the raytraced shades and DoF, more readable and eye catching.

Check `examples on GitHub <https://github.com/rnd-team-dev/plotoptix/tree/master/examples>`__ for practical code samples and `documentation pages <https://plotoptix.rnd.team>`__ for a complete API reference.

PlotOptiX is a set of CUDA shaders by `R&D Team <https://rnd.team>`_ wrapped in C#/C++ libraries with a Python API. It is based on `NVIDIA OptiX 7.7 <https://developer.nvidia.com/optix>`_ framework and makes use of RTX-capable GPU's.

You can quickly display data in a simple plot:

.. image:: https://plotoptix.rnd.team/images/screenshots.jpg
   :alt: PlotOptiX screenshots, scatter and line plots ray tracing

or prepare complex scenes, combining your generated data with meshes modeled elsewhere:

.. image:: https://plotoptix.rnd.team/images/screenshot2.jpg
   :alt: PlotOptiX screenshots, ray tracing for generative art

Features
--------

- progressive path tracing with explicit light sampling
- *cameras*: orthographic, pinhole, thin-lens and fisheye with depth of field and chromatic aberration simulation, panoramic camera for making 360 deg environment maps, user-defined projection for shooting rays at any angle, and from any origin
- *geometries*: particles (spheres), parallelepipeds, parallelograms, tetrahedrons, linear segments, bezier curves, b-splines; *meshes*: shaded surface or wireframe, automatically generated from a parametric surface or f(x,y) data, or defined with vertices and faces, e.g. created with `pygmsh <https://github.com/nschloe/pygmsh>`__, or loaded from a file, e.g. supported by `trimesh <https://github.com/mikedh/trimesh>`__, or loaded from a Wavefront .obj file with a native loader
- *materials*: flat, diffuse, reflective, refractive; including: light dispersion, surface roughness and metalness, volume scattering, and nested volumes
- *light sources*: spherical and parallelogram, light emission in volumes, uniform environmental light or environment map
- *post-processing*: tonal correction curves, levels adjustment, apply mask/overlay, AI denoisers and upsampler (OptiX native and Intel Open Image models)
- *callbacks*: at the scene initialization, start and end of each frame raytracing, end of progressive accumulation
- 8/16/32bps(hdr) image output to `numpy <https://numpy.org>`__ array, or save to popular image file formats
- zero-copy access to GPU buffers wrapped in ndarrays: 8/32bpc image, hit and object info, albedo, normals
- direct access to `CuPy <https://cupy.dev>`__ and `PyTorch <https://pytorch.org>`__ tensors data stored on GPU (and CPU as well) for texture and geometry updates
- GPU acceleration using RT Cores and everything else what comes with `OptiX <https://developer.nvidia.com/optix>`__
- hardware accelerated video output to MP4 file format using `NVENC 9.0 <https://developer.nvidia.com/nvidia-video-codec-sdk>`__
- Tkinter based simple GUI window or a headless raytracer
- configurable multi-GPU support

System Requirements
-------------------

- a `CUDA-enabled GPU <https://developer.nvidia.com/cuda-gpus>`__ with compute capability 5.0 (Maxwell) to latest (Ada Lovelace);
   - NVIDIA driver >= r530;
- **Python 3 64-bit**
- Windows:
   - Framework .NET >= 4.8 (present in all modern Windows)
- Linux:
   - `Mono <https://www.mono-project.com/download/stable/#download-lin>`__ Common Language Runtime >= 6.6
   - `pythonnet <http://pythonnet.github.io>`__
   - `FFmpeg <https://ffmpeg.org/download.html>`__ >= 4.1

What's Included
---------------

- RnD.SharpOptiX and RnD.SharpEncoder libraries
- all other supporting 3'rd party libraries: FFmpeg (Windows only), LibTiff, Newtonsoft.Json
- Python examples

Installation
============

**Note**, at this point, PlotOptiX binaries are tested in: Windows 10/11 (any Python 3), and Linux (Python 3.8-3.10 recommended): Ubuntu 18.04, CentOS 7.

PlotOptiX was also successfully tested on the `Google Cloud Platform <https://cloud.google.com/>`__, using Compute Engine instance with 2x V100 GPU's and Ubuntu 18.04 image.
Here are the `installation steps <https://github.com/rnd-team-dev/plotoptix/blob/master/gcp_install_gpu.txt>`__ so you can save some precious seconds (FFmpeg not included).

If you'd like to work on Colab, it is possible as well. `Here is a notebook <https://colab.research.google.com/drive/1RSVKYSZl1NjfttBwyuoehaEkNWnXwy6t?usp=sharing>`__ with
all the setup and a simple image generated with PlotOptiX. *Note*: Colab drivers usually are not up to date and the most recent PlotOptiX release may not be compatible with what
Colab provides. The sample notebook is configured to install release wich works with the available driver.

Windows should be ready to go in most cases. You need to do some more typing in Linux.

Windows prerequisites
---------------------

*.NET Framework:*

You have it built in your Windows. Go ahead and install PlotOptiX.

Linux prerequisites
-------------------

*Mono runtime:*

Check if / which Mono release is present in your system::

   mono -V
   
   Mono JIT compiler version 5.18.1.3 (tarball Tue Apr  9 16:16:30 UTC 2019)
      Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	   TLS:           __thread
      ... (output cropped for clarity) ...

If ``mono`` command is not available, or the reported version is < 6.6, visit `Mono download page <https://www.mono-project.com/download/stable/#download-lin>`__ and follow instructions related to your Linux distribution. You want to install **mono-complete** package.

*pythonnet:*

The `pythonnet <http://pythonnet.github.io>`__ package is available from `PyPI <https://pypi.org/project/pythonnet>`__, however, you might need some prerequisities. Instuctions below are based on APT, replace ``apt`` with ``yum`` depending on your OS::

   apt update
   apt install clang libglib2.0-dev python-dev
   
You may also need to install development tools, if not already present in your system, e.g. in Ubuntu::

   apt install build-essential
   
or in CentOS::

   yum group install "Development Tools" 
   
Then, update required packages and install ``pythonnet``::

   pip install -U setuptools wheel pycparser
   pip install -U pythonnet
   
After successful installation you should be able to do python's import:

.. code-block:: python

   import clr
   print(clr.__version__)

*FFmpeg:*

FFmpeg shared libraries >= 4.1 are required to enable video encoding features in PlotOptiX. Uninstall older version first. Visit `FFmpeg site <https://ffmpeg.org/download.html>`__ and download the most recent release sources. Unpack it to a new folder, cd to it. Configure, compile and install as below::

   ./configure --enable-shared
   make
   sudo make install

Add FFmpeg's shared library path to your config::

   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
   sudo ldconfig

PlotOptiX
---------

Using pip::

   pip install -U plotoptix

From GitHub sources::

   git clone https://github.com/rnd-team-dev/plotoptix.git
   cd plotoptix
   python setup.py install

Then, try running code from the top of this readme, or one of the examples. You may also need to install ``tkinter`` and/or ``PyQt`` packages, if not shipped with your Python environment.

Development path
================

This is still an experimental version in many aspects.

PlotOptiX is basically an interface to RnD.SharpOptiX library which we are developing and using in our Studio. RnD.SharpOptiX offers
much more functionality than it is now available through PlotOptiX. We progressively add more to PlotOptiX based mostly on the interest
of our patrons and applications that this project supports.

Download, star, and `become our Patron <https://www.patreon.com/rndteam>`__ if you like the project. Get in touch, share your use case,
we are always happy to help and take part in exciting ideas of our users.

Examples
========

Looking at examples is the best way to get started and explore PlotOptiX features. Have a look at the
`readme and sample codes here <https://github.com/rnd-team-dev/plotoptix/tree/master/examples>`__.

Examples in the repository head may use features not yet available in the PyPI release. In order to download examples
compatible with PyPI release install the package::

	python -m plotoptix.install examples

This will create a folder with examples in the current directory.

.. image:: https://plotoptix.rnd.team/images/surface_plot.jpg
   :alt: Surface plot ray tracing with PlotOptiX



            

Raw data

            {
    "_id": null,
    "home_page": "https://rnd.team/plotoptix",
    "name": "plotoptix",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "gpu nvidia optix ray-tracing path-tracing visualisation generative plot animation real-time",
    "author": "Robert Sulej, R&D Team",
    "author_email": "dev@rnd.team",
    "download_url": "",
    "platform": null,
    "description": "PlotOptiX\n=========\n\n.. image:: https://img.shields.io/pypi/v/plotoptix.svg\n   :target: https://pypi.org/project/plotoptix\n   :alt: Latest PlotOptiX version\n.. image:: https://img.shields.io/pypi/dm/plotoptix.svg\n   :target: https://pypi.org/project/plotoptix\n   :alt: PlotOptiX downloads by pip install\n.. image:: https://img.shields.io/badge/PATREON-Become%20a%20Patron!-008a04.svg\n   :target: https://www.patreon.com/bePatron?u=33442314\n   :alt: Become a Patron!\n\n**Data visualisation and ray tracing in Python based on NVIDIA OptiX framework.**\n\n`Documentation <https://plotoptix.rnd.team>`__\n\n- Sample images created with PlotOptiX: `Behance <https://www.behance.net/RnDTeam>`__, `Instagram <https://www.instagram.com/rnd.team.studio/>`__, and `Facebook <https://www.facebook.com/rndteam>`__.\n- Join `Patreon <https://www.patreon.com/rndteam?fan_landing=true>`__ for news, release plans and hi-res content.\n\nPlotOptiX is a 3D `ray tracing <https://en.wikipedia.org/wiki/Ray_tracing_(graphics)>`__ package for Python, aimed at easy and aesthetic visualization\nof large datasets (and small as well). Data features can be represented in images as a position, size/thickness and color of primitives\nof several basic shapes, or projected onto surfaces of objects in form of a color textures and displacement maps. Triangular meshes,\ngenerated in the code or loaded from a file, are supported as well. All is finished with a photorealistic lighting, depth of field, and many other\nphysically based effects simulated with a high quality.\n\nNo need to write shaders, intersection algorithms, handle 3D scene technicalities. Basic usage is even more simple than with\n`matplotlib <https://matplotlib.org/gallery/mplot3d/scatter3d.html>`__:\n\n.. code-block:: python\n\n   import numpy as np\n   from plotoptix import TkOptiX\n\n   n = 1000000                                  # 1M points, better not try this with matplotlib\n   xyz = 3 * (np.random.random((n, 3)) - 0.5)   # random 3D positions\n   r = 0.02 * np.random.random(n) + 0.002       # random radii\n\n   plot = TkOptiX()\n   plot.set_data(\"my plot\", xyz, r=r)\n   plot.show()\n\n... but PlotOptiX is much faster on large data, and, with all the raytraced shades and DoF, more readable and eye catching.\n\nCheck `examples on GitHub <https://github.com/rnd-team-dev/plotoptix/tree/master/examples>`__ for practical code samples and `documentation pages <https://plotoptix.rnd.team>`__ for a complete API reference.\n\nPlotOptiX is a set of CUDA shaders by `R&D Team <https://rnd.team>`_ wrapped in C#/C++ libraries with a Python API. It is based on `NVIDIA OptiX 7.7 <https://developer.nvidia.com/optix>`_ framework and makes use of RTX-capable GPU's.\n\nYou can quickly display data in a simple plot:\n\n.. image:: https://plotoptix.rnd.team/images/screenshots.jpg\n   :alt: PlotOptiX screenshots, scatter and line plots ray tracing\n\nor prepare complex scenes, combining your generated data with meshes modeled elsewhere:\n\n.. image:: https://plotoptix.rnd.team/images/screenshot2.jpg\n   :alt: PlotOptiX screenshots, ray tracing for generative art\n\nFeatures\n--------\n\n- progressive path tracing with explicit light sampling\n- *cameras*: orthographic, pinhole, thin-lens and fisheye with depth of field and chromatic aberration simulation, panoramic camera for making 360 deg environment maps, user-defined projection for shooting rays at any angle, and from any origin\n- *geometries*: particles (spheres), parallelepipeds, parallelograms, tetrahedrons, linear segments, bezier curves, b-splines; *meshes*: shaded surface or wireframe, automatically generated from a parametric surface or f(x,y) data, or defined with vertices and faces, e.g. created with `pygmsh <https://github.com/nschloe/pygmsh>`__, or loaded from a file, e.g. supported by `trimesh <https://github.com/mikedh/trimesh>`__, or loaded from a Wavefront .obj file with a native loader\n- *materials*: flat, diffuse, reflective, refractive; including: light dispersion, surface roughness and metalness, volume scattering, and nested volumes\n- *light sources*: spherical and parallelogram, light emission in volumes, uniform environmental light or environment map\n- *post-processing*: tonal correction curves, levels adjustment, apply mask/overlay, AI denoisers and upsampler (OptiX native and Intel Open Image models)\n- *callbacks*: at the scene initialization, start and end of each frame raytracing, end of progressive accumulation\n- 8/16/32bps(hdr) image output to `numpy <https://numpy.org>`__ array, or save to popular image file formats\n- zero-copy access to GPU buffers wrapped in ndarrays: 8/32bpc image, hit and object info, albedo, normals\n- direct access to `CuPy <https://cupy.dev>`__ and `PyTorch <https://pytorch.org>`__ tensors data stored on GPU (and CPU as well) for texture and geometry updates\n- GPU acceleration using RT Cores and everything else what comes with `OptiX <https://developer.nvidia.com/optix>`__\n- hardware accelerated video output to MP4 file format using `NVENC 9.0 <https://developer.nvidia.com/nvidia-video-codec-sdk>`__\n- Tkinter based simple GUI window or a headless raytracer\n- configurable multi-GPU support\n\nSystem Requirements\n-------------------\n\n- a `CUDA-enabled GPU <https://developer.nvidia.com/cuda-gpus>`__ with compute capability 5.0 (Maxwell) to latest (Ada Lovelace);\n   - NVIDIA driver >= r530;\n- **Python 3 64-bit**\n- Windows:\n   - Framework .NET >= 4.8 (present in all modern Windows)\n- Linux:\n   - `Mono <https://www.mono-project.com/download/stable/#download-lin>`__ Common Language Runtime >= 6.6\n   - `pythonnet <http://pythonnet.github.io>`__\n   - `FFmpeg <https://ffmpeg.org/download.html>`__ >= 4.1\n\nWhat's Included\n---------------\n\n- RnD.SharpOptiX and RnD.SharpEncoder libraries\n- all other supporting 3'rd party libraries: FFmpeg (Windows only), LibTiff, Newtonsoft.Json\n- Python examples\n\nInstallation\n============\n\n**Note**, at this point, PlotOptiX binaries are tested in: Windows 10/11 (any Python 3), and Linux (Python 3.8-3.10 recommended): Ubuntu 18.04, CentOS 7.\n\nPlotOptiX was also successfully tested on the `Google Cloud Platform <https://cloud.google.com/>`__, using Compute Engine instance with 2x V100 GPU's and Ubuntu 18.04 image.\nHere are the `installation steps <https://github.com/rnd-team-dev/plotoptix/blob/master/gcp_install_gpu.txt>`__ so you can save some precious seconds (FFmpeg not included).\n\nIf you'd like to work on Colab, it is possible as well. `Here is a notebook <https://colab.research.google.com/drive/1RSVKYSZl1NjfttBwyuoehaEkNWnXwy6t?usp=sharing>`__ with\nall the setup and a simple image generated with PlotOptiX. *Note*: Colab drivers usually are not up to date and the most recent PlotOptiX release may not be compatible with what\nColab provides. The sample notebook is configured to install release wich works with the available driver.\n\nWindows should be ready to go in most cases. You need to do some more typing in Linux.\n\nWindows prerequisites\n---------------------\n\n*.NET Framework:*\n\nYou have it built in your Windows. Go ahead and install PlotOptiX.\n\nLinux prerequisites\n-------------------\n\n*Mono runtime:*\n\nCheck if / which Mono release is present in your system::\n\n   mono -V\n   \n   Mono JIT compiler version 5.18.1.3 (tarball Tue Apr  9 16:16:30 UTC 2019)\n      Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com\n\t   TLS:           __thread\n      ... (output cropped for clarity) ...\n\nIf ``mono`` command is not available, or the reported version is < 6.6, visit `Mono download page <https://www.mono-project.com/download/stable/#download-lin>`__ and follow instructions related to your Linux distribution. You want to install **mono-complete** package.\n\n*pythonnet:*\n\nThe `pythonnet <http://pythonnet.github.io>`__ package is available from `PyPI <https://pypi.org/project/pythonnet>`__, however, you might need some prerequisities. Instuctions below are based on APT, replace ``apt`` with ``yum`` depending on your OS::\n\n   apt update\n   apt install clang libglib2.0-dev python-dev\n   \nYou may also need to install development tools, if not already present in your system, e.g. in Ubuntu::\n\n   apt install build-essential\n   \nor in CentOS::\n\n   yum group install \"Development Tools\" \n   \nThen, update required packages and install ``pythonnet``::\n\n   pip install -U setuptools wheel pycparser\n   pip install -U pythonnet\n   \nAfter successful installation you should be able to do python's import:\n\n.. code-block:: python\n\n   import clr\n   print(clr.__version__)\n\n*FFmpeg:*\n\nFFmpeg shared libraries >= 4.1 are required to enable video encoding features in PlotOptiX. Uninstall older version first. Visit `FFmpeg site <https://ffmpeg.org/download.html>`__ and download the most recent release sources. Unpack it to a new folder, cd to it. Configure, compile and install as below::\n\n   ./configure --enable-shared\n   make\n   sudo make install\n\nAdd FFmpeg's shared library path to your config::\n\n   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib\n   sudo ldconfig\n\nPlotOptiX\n---------\n\nUsing pip::\n\n   pip install -U plotoptix\n\nFrom GitHub sources::\n\n   git clone https://github.com/rnd-team-dev/plotoptix.git\n   cd plotoptix\n   python setup.py install\n\nThen, try running code from the top of this readme, or one of the examples. You may also need to install ``tkinter`` and/or ``PyQt`` packages, if not shipped with your Python environment.\n\nDevelopment path\n================\n\nThis is still an experimental version in many aspects.\n\nPlotOptiX is basically an interface to RnD.SharpOptiX library which we are developing and using in our Studio. RnD.SharpOptiX offers\nmuch more functionality than it is now available through PlotOptiX. We progressively add more to PlotOptiX based mostly on the interest\nof our patrons and applications that this project supports.\n\nDownload, star, and `become our Patron <https://www.patreon.com/rndteam>`__ if you like the project. Get in touch, share your use case,\nwe are always happy to help and take part in exciting ideas of our users.\n\nExamples\n========\n\nLooking at examples is the best way to get started and explore PlotOptiX features. Have a look at the\n`readme and sample codes here <https://github.com/rnd-team-dev/plotoptix/tree/master/examples>`__.\n\nExamples in the repository head may use features not yet available in the PyPI release. In order to download examples\ncompatible with PyPI release install the package::\n\n\tpython -m plotoptix.install examples\n\nThis will create a folder with examples in the current directory.\n\n.. image:: https://plotoptix.rnd.team/images/surface_plot.jpg\n   :alt: Surface plot ray tracing with PlotOptiX\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Data visualisation in Python based on NVIDIA OptiX ray tracing framework.",
    "version": "0.18.1",
    "project_urls": {
        "Documentation": "https://plotoptix.rnd.team",
        "Examples": "https://github.com/rnd-team-dev/plotoptix/tree/master/examples",
        "Homepage": "https://rnd.team/plotoptix",
        "Source": "https://github.com/rnd-team-dev/plotoptix"
    },
    "split_keywords": [
        "gpu",
        "nvidia",
        "optix",
        "ray-tracing",
        "path-tracing",
        "visualisation",
        "generative",
        "plot",
        "animation",
        "real-time"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f942b28df5fad70b8c65ab2d4a755fb917ab15f6d04212914cf7f237fb8757e7",
                "md5": "e01c12385261ba67ca6036a774744b58",
                "sha256": "c6739ca3e856aaceb307a0a56c55b176d29d9ba56076581615b81b1d197037d2"
            },
            "downloads": -1,
            "filename": "plotoptix-0.18.1-py3-none-manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e01c12385261ba67ca6036a774744b58",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 27795043,
            "upload_time": "2024-03-10T17:57:20",
            "upload_time_iso_8601": "2024-03-10T17:57:20.419825Z",
            "url": "https://files.pythonhosted.org/packages/f9/42/b28df5fad70b8c65ab2d4a755fb917ab15f6d04212914cf7f237fb8757e7/plotoptix-0.18.1-py3-none-manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "205c01b77a3b39107c0f2841b7914e4e825d2fefe39528d55f2f183756c72e4b",
                "md5": "222c02d09659e1e985106992c8266590",
                "sha256": "537bee86f80ed3f3163a01be7cf4428afff43995cb25a84c1b02592614582f85"
            },
            "downloads": -1,
            "filename": "plotoptix-0.18.1-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "222c02d09659e1e985106992c8266590",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 30993795,
            "upload_time": "2024-03-10T17:57:41",
            "upload_time_iso_8601": "2024-03-10T17:57:41.633272Z",
            "url": "https://files.pythonhosted.org/packages/20/5c/01b77a3b39107c0f2841b7914e4e825d2fefe39528d55f2f183756c72e4b/plotoptix-0.18.1-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-10 17:57:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rnd-team-dev",
    "github_project": "plotoptix",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "plotoptix"
}
        
Elapsed time: 0.22703s