FURY - A software library for scientific visualization in Python

Overview


FURY
Free Unified Rendering in Python

A software library for scientific visualization in Python.

General InformationKey FeaturesInstallationHow to useCreditsContribute

FURY Networks swarming simulation shaders horse
Network Visualization Swarming/flocking simulation based on simple boids rules Easy shader effect integration.
sdf Collides simulation Physics bricks
Ray Marching and Signed Distance Functions Particle collisions Interoperability with the pyBullet library.
UI Tabs Shaders dragon skybox Picking object
Custom User Interfaces Shaders and SkyBox integration Easy picking manager

General Information

Key Features

  • Custom User Interfaces
  • Physics Engines API
  • Custom Shaders
  • Interactive local and Remote rendering in Jupyter Notebooks
  • Large amount of Tutorials and Examples

Installation

Dependencies

FURY requires:

  • Numpy (>=1.7.1)
  • Vtk (>=8.1.2)
  • Scipy (>=1.2.0)
  • Pillow>=5.4.1

Releases

pip install fury or conda install -c conda-forge fury

Development

Installation from source

Step 1. Get the latest source by cloning this repo:

git clone https://github.com/fury-gl/fury.git

Step 2. Install requirements:

pip install -r requirements/default.txt

Step 3. Install fury

As a local project installation using:

pip install .

Or as an "editable" installation using:

pip install -e .

If you are developing fury you should go with editable installation.

Step 4: Enjoy!

For more information, see also installation page on fury.gl

Testing

After installation, you can install test suite requirements:

pip install -r requirements/test.txt

And to launch test suite:

pytest -svv fury

How to use

There are many ways to start using FURY:

Credits

Please, go to contributors page to see who have been involved in the development of FURY.

Contribute

We love contributions!

You've discovered a bug or something else you want to change - excellent! Create an issue!

Comments
  • Fixed warnings in test_utils.py

    Fixed warnings in test_utils.py

    fixed warning in test_utils.py.

    warning was: #317

    fury/tests/test_utils.py::test_trilinear_interp
    fury/tests/test_utils.py::test_trilinear_interp
      D:\fury-master\fury\tests\test_utils.py:133: DeprecationWarning: Converting `np.integer` or `np.signedinteger` to a dtype is deprecated. The current result is `np.dtype(np.int_)` which is not strictly correct. Note that the result depends on the system. To ensure stable results use may want to use `np.int64` or `np.int32`.
        x0 = x_indices.astype(np.integer)
    
    fury/tests/test_utils.py::test_trilinear_interp
    fury/tests/test_utils.py::test_trilinear_interp
      D:\fury-master\fury\tests\test_utils.py:134: DeprecationWarning: Converting `np.integer` or `np.signedinteger` to a dtype is deprecated. The current result is `np.dtype(np.int_)` which is not strictly correct. Note that the result depends on the system. To ensure stable results use may want to use `np.int64` or `np.int32`.
        y0 = y_indices.astype(np.integer)
    
    fury/tests/test_utils.py::test_trilinear_interp
    fury/tests/test_utils.py::test_trilinear_interp
      D:\fury-master\fury\tests\test_utils.py:135: DeprecationWarning: Converting `np.integer` or `np.signedinteger` to a dtype is deprecated. The current result is `np.dtype(np.int_)` which is not strictly correct. Note that the result depends on the system. To ensure stable results use may want to use `np.int64` or `np.int32`.
        z0 = z_indices.astype(np.integer)
    
    

    It is not much but I noticed it so I just changed it.

    The equation looks like this in tutorial of solar system visualization,

    temp

    link - https://en.wikipedia.org/wiki/Orbital_period

    type:Documentation 
    opened by Shadow2121 30
  • [FIX]  Compatibility with VTK 9

    [FIX] Compatibility with VTK 9

    This PR update some FURY functions due to some changes in VTK 9. The main change is better management of vtkCellArray.

    Wheels available on Pypi only for Windows and macOS. Concerning Linux, you have to download the wheel on VTK website. (https://discourse.vtk.org/t/vtk-9-wheels-on-pypi/3340/4)

    VTK Releases Announcement : https://blog.kitware.com/vtk-9-0-0-available-for-download/ VTK API changes from 8.2 to 9.0: https://vtk.org/Wiki/VTK/API_Changes_8_2_0_to_9_0_0 VTK 9 build process : https://vtk.org/doc/nightly/html/md__home_kitware_dashboards_buildbot_vtk_nightly-master-ike-linux-shared-release_doc_nightly_osm749dd663df9981384f2598c108aac3b0.html

    type:Maintenance 
    opened by skoudoro 28
  • Render a video on an actor.

    Render a video on an actor.

    Render a video on an actor.

    This PR Consists of 2 parts:

    • Function to change the texture of a vtkActor
    • A demo file to visualize, rendering of a Video.

    Function to change the texture of a vtkActor

    Changes in fury.actor

    Fury actors didn't have a function to change the texture of an already textured vtkActor. There was a requirement for this function while rendering a video on an Actor. The function accepts an actor object and an image. The image gets mapped in the same mapper as configured while creating the actor.

    Tests

    To test the function an actor is created with a black texture which is changed and tested with the new texture.

    A demo file to visualize, rendering of a Video

    The goal of this demo is to show how to visualize a video on a Plane, which can be extended to potentially all shapes

    The Video Class

    This class wraps OpenCV VideoCapture with the required functionalities

    The Animation Class

    This class creates an object of the video class and initializes the scene with an Actor.

    The run() function adds a timer callback to the show_manager that changes the frame of the video on every call after a specific interval.

    How it Looks

    type:Documentation type:New Feature 
    opened by LoopThrough-i-j 23
  • Track and fix warnings during tests.

    Track and fix warnings during tests.

    When you run FURY tests, a bunch of warnings is popping up. The goal of this task is to track and fix them. Some of them are expected, others not. We will need many PR for this issue and more precisely, 1PR per module

    TODO:

    • [x] fury/actor.py (pytest -svv fury/test_actor.py)
    • [x] fury/colormap.py (pytest -svv fury/test_colormap.py)
    • [x] fury/convert.py (pytest -svv fury/test_convert.py)
    • [x] fury/decorators.py (pytest -svv fury/test_decorators.py)
    • [x] fury/interactor.py (pytest -svv fury/test_interactor.py)
    • [x] fury/io.py (pytest -svv fury/test_io.py)
    • [ ] fury/layout.py (pytest -svv fury/test_layout.py)
    • [x] fury/ui.py (pytest -svv fury/test_ui.py)
    • [x] fury/pick.py (pytest -svv fury/test_pick.py)
    • [x] fury/primitive.py (pytest -svv fury/test_primitive.py)
    • [x] fury/transform.py (pytest -svv fury/test_transform.py)
    • [x] fury/window.py (pytest -svv fury/test_window.py)
    • [x] fury/utils.py (pytest -svv fury/test_utils.py)
    good first issue type:Maintenance :beer: Hacktoberfest :beer: 
    opened by skoudoro 22
  • moved physics tutorials to examples under the heading 'Integrate physics using pybullet'

    moved physics tutorials to examples under the heading 'Integrate physics using pybullet'

    #297 Moved all the Physics tutorials under examples section with a heading 'Integrate physics using pybullet'

    Fixed the buggy wrecking ball behavior, the problem was radii was the links or rope's radius instead of the wrecking ball. Changing it to 1 was making a cylindrical collider of radius 1 greater than wrecking ball's radius hence the bug. Ball's radius was hardcoded to 0.2, assigned it to the variable ball_radius so now you can mess with wrecking ball by changing the radius. Fixed some typos that I found along with it.

    PS : There was some weird behavior after 100 simulation steps. The ball went crazy and there were some weird stretched lines instead of ropes, I think the code to make the rope has to be redone.

    type:Documentation 
    opened by tushar5526 20
  • Animated Surfaces

    Animated Surfaces

    Fixes #324

    An example to illustrate how one can render a time-varying 2D function using FURY. I have added quite a few comments to make the code easy to interpret.

    Preview-

    2d_func

    type:Documentation 
    opened by SunTzunami 19
  • ComboBox2D UI element

    ComboBox2D UI element

    ComboBox2D UI element

    • [X] Skeleton
    • [X] Callbacks
    • [X] Methods
    • [X] Properties
    • [X] Tests
    • [X] Moving the whole panel with the mouse.
    • [X] Make Draggable optional.
    • [X] resizing TextBlock2D.
    • [X] Recording tests.

    Things to be covered:

    • a bit of design
    • Scrollbar bug when items are added using on_change method.
    state: work-in-progress :rocket: :snake: GSOC 2020 
    opened by Nibba2018 19
  • Add Billboard actor

    Add Billboard actor

    A simple actor that permits you to draw the shader that you want on one or many Canvas. it uses the billboard technique for always facing the camera. This offers us a powerful tool to draw whatever we want really fast. Below an example of 5 Million funky spheres.

    This is close to being done, Maybe today.

    Capture d’écran 2019-12-09 à 19 23 52 state: needs review type:New Feature 
    opened by skoudoro 19
  • UI tests are failing in Ubuntu OS due to a

    UI tests are failing in Ubuntu OS due to a "segmentation error"

    Description

    UI tests are failing because of a "segmentation error" in Ubuntu only. @xtanion confirmed it on his machine. The error message is: tests/test_elements_callback.py Fatal Python error: Segmentation fault I tried to trace back the cause of this error and it's not caused by the test in which this error occurred. Running only test_elements_callback.py gives a success.

    Way to reproduce

    Running the UI tests in Ubuntu OS.

    opened by m-agour 18
  • Adding support for importing simple glTF files

    Adding support for importing simple glTF files

    This PR will allow us to load gltf files and get actors or polydata from it.

    It currently supports:

    • [x] multiple Nodes
    • [x] multiple Meshes
    • [x] Normals
    • [x] Cameras
    • [x] Textures (baseColor)

    Demo: image

    WIP: glTF exporter, tests

    type:Enhancement 
    opened by xtanion 16
  • Implemented Domino-Physics-Simulation using PyBullet

    Implemented Domino-Physics-Simulation using PyBullet

    Reference Issues/PRs Closes #309

    What does this implement/fix? Explain your changes. I have implemented code that shows how to use pybullet to render physics simulations in fury. More specifically, In this PR, I render a series of Dominoes that are under the Domino Effect.

    type:Documentation 
    opened by SanjayMarreddi 15
  • Logo changes

    Logo changes

    • This PR changes the logo and logo sizes and fonts according to the new design.
    • This PR uses the home-page-mobile-friendly as the base PR, thus will require that PR to be merged to master first.
    opened by Mk996 0
  • Home page mobile friendly

    Home page mobile friendly

    • What kind of change does this PR introduce?

    • It is a bugfix PR. It fixes all the issues related to the home page's mobile-friendliness.

    • What is the new behavior (if this is a feature change)? Untitled

    • Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

    • No

    • List of fixes:

    • Main logo and description alignment issues.

    • Hamburger menu alignment fixed.

    • Horizontal scrolling due to overflowing elements fixed.

    • Install text and command showing properly.

    • Tab sections got a new mobile-friendly layout.

    • Footer properly aligned and readable.

    opened by Mk996 0
  • Scientific domains enhancement

    Scientific domains enhancement

    • What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
    • This PR introduces the feature that on hovering the scientific domain, the popup with the animated gif will appear in the home page of the fury website
    • What is the current behavior? (You can also link to an open issue here)
    • No effect on hover.
    • What is the new behavior (if this is a feature change)?
    • It will open up a popup.
    • The popup can be closed in two ways
      1. By hovering out of the popup
      2. By clicking outside of the popup
    • Other information:
    • The animations in the popup are modified a little bit from the original tutorials.
    • The animation for the data-science field is created from a newly created example(which will be pushed in upcoming PRs).
    opened by Mk996 0
  • [WIP] Implementation of PBR in glTF

    [WIP] Implementation of PBR in glTF

    This PR needs a lot of cleaning and still in progress. As of now this PR adds ORM, Normal & Emissive materials. Most of the glTF models has been modified to use the ORM material, however few of them still use MetallicRoughness and AmbientOcclusion materials separately (for e.g. DamagedHelmet & Avocado). Few model may have RoughnessMetallic instead of MetallicRoughness which changes switches the channels (For e.g. the Avocado model), as mentioned in this comment. This PR currently does not support the RoughnessMetallic.

    Preview with the DamagedHelmet (has all three of materials) model: image

    Sample of the Avocado model (without switching the channels in RoughnessMetallic to MetallicRoughness) ( Left) After switching channels (Right):

    opened by xtanion 3
  • Earth coordinates tutorial example upsidedown

    Earth coordinates tutorial example upsidedown

    Description

    The example fury/docs/tutorials/01_introductory/viz_earth_coordinates.py is not working properly.

    The world is upside down and the coordinates does not match the real locations. (Can't figure out what changed to make this happen, it works fine in older versions. image

    Way to reproduce

    Just run python fury/docs/tutorials/01_introductory/viz_earth_coordinates.py

    Version information

    {
      'fury_version': '0.8.0',
      'pkg_path': '/Users/filsilva/miniforge3/envs/furyearth/lib/python3.9/site-packages/fury',
       'commit_hash': 'b937ff3418e7c64b0fa89921a54c083ff78dc055',
      'sys_version': '3.9.15 | packaged by conda-forge | (main, Nov 22 2022, 08:48:25) \n[Clang 14.0.6 ]',
      'sys_executable': '/Users/filsilva/miniforge3/envs/furyearth/bin/python',
      'sys_platform': 'darwin',
      'numpy_version': '1.23.5',
      'scipy_version': '1.9.3',
      'vtk_version': '9.2.2',
      'matplotlib_version': '3.6.2'
    }
    
    • [x] Code example
    • [x] Relevant images (if any)
    • [x] Operating system and versions (run python -c "from fury import get_info; print(get_info())")
    opened by filipinascimento 0
  • The docs generation fails with pyData theme v0.11.0

    The docs generation fails with pyData theme v0.11.0

    Description

    [The docs generation fails with pyData theme v0.11.0 and fixes the aliases]

    Way to reproduce

    1. Start with a clean code installation via the Source method.
    2. try to build the project make -C . clean && make -C . html-no-examples.
    3. The build will fail due to version incompatibility.

    System Specs

    {'fury_version': '0.8.0.post1304+gb37669f8', 'pkg_path': '/Users/maharshigor/Desktop/GRG/fury/fury', 'commit_hash': 'b37669f8767d460b97e17584106ad8a6b5d26491', 'sys_version': '3.10.6 | packaged by conda-forge | (main, Aug 22 2022, 20:41:54) [Clang 13.0.1 ]', 'sys_executable': '/Users/maharshigor/opt/anaconda3/envs/Py310/bin/python', 'sys_platform': 'darwin', 'numpy_version': '1.23.4', 'scipy_version': '1.9.3', 'vtk_version': '9.1.0', 'matplotlib_version': '3.6.2', 'dipy_version': '1.5.0'}

    opened by Mk996 0
Releases(v0.8.0)
  • v0.8.0(Jan 31, 2022)

    Quick Overview

    • New Physically Based Rendering (PBR) added. It includes anisotropic rotation and index of refraction among other material properties.
    • New Principled BRDF shader unique to FURY added. BRDF stands for bidirectional reflectance distribution function.
    • VTK 9.1.0 defined as minimum version.
    • Continuous Integration (CI) platform updated.
    • New actors added (Rhombicuboctahedron, Pentagonal Prism).
    • New UI layouts added (Vertical and Horizontal).
    • New module fury.molecular added.
    • New module fury.lib added. Module improved loading speed.
    • Demos added and updated.
    • Documentation updated.

    Details:

    The following 12 authors contributed 500 commits.

    • Anand Shivam
    • Antriksh Misri
    • Bruno Messias
    • Eleftherios Garyfallidis
    • Javier Guaje
    • Marc-Alexandre Côté
    • Meha Bhalodiya
    • Praneeth Shetty
    • PrayasJ
    • Sajag Swami
    • Serge Koudoro
    • Shivam Anand

    We closed a total of 81 issues, 34 pull requests, and 47 regular issues;

    What's Changed

    • Added Horizontal Layout to layout module by @antrikshmisri in https://github.com/fury-gl/fury/pull/480
    • Added Vertical Layout to layout module by @antrikshmisri in https://github.com/fury-gl/fury/pull/479
    • Fine-tuning of the OpenGL state by @devmessias in https://github.com/fury-gl/fury/pull/432
    • Peak representation improvements by @guaje in https://github.com/fury-gl/fury/pull/433
    • Animated Surfaces by @SunTzunami in https://github.com/fury-gl/fury/pull/362
    • Add primitive and actor for pentagonal prism with test by @mehabhalodiya in https://github.com/fury-gl/fury/pull/474
    • GSoC blogs 2021 by @SunTzunami in https://github.com/fury-gl/fury/pull/493
    • Add python3.9 for our CI's by @skoudoro in https://github.com/fury-gl/fury/pull/449
    • Fix material docstrings, improved standard parameters and improved materials application support by @guaje in https://github.com/fury-gl/fury/pull/488
    • Fix disk position outside the slider line by @guaje in https://github.com/fury-gl/fury/pull/498
    • Added GSoC blog posts for remaining weeks by @antrikshmisri in https://github.com/fury-gl/fury/pull/496
    • Method to process and load sprite sheets by @antrikshmisri in https://github.com/fury-gl/fury/pull/491
    • Molecular module by @SunTzunami in https://github.com/fury-gl/fury/pull/452
    • Update the way we import external libraries by using only the necessary modules by @skoudoro in https://github.com/fury-gl/fury/pull/470
    • Update molecular module import by @skoudoro in https://github.com/fury-gl/fury/pull/504
    • update tutorial import by @skoudoro in https://github.com/fury-gl/fury/pull/506
    • [FIX] Mesa installation by @skoudoro in https://github.com/fury-gl/fury/pull/513
    • [FIX] Radio button and checkbox tests by @skoudoro in https://github.com/fury-gl/fury/pull/514
    • Adding Rhombicuboctahedron actor by @PrayasJ in https://github.com/fury-gl/fury/pull/516
    • Changing how we do things with our test suite. by @Garyfallidis in https://github.com/fury-gl/fury/pull/515
    • Principled material by @guaje in https://github.com/fury-gl/fury/pull/519
    • Pytest patch by @skoudoro in https://github.com/fury-gl/fury/pull/518
    • Added rotation along the axis in Solar System Animations example by @xtanion in https://github.com/fury-gl/fury/pull/520
    • Snapshot flipping bug fix by @Garyfallidis in https://github.com/fury-gl/fury/pull/521
    • [WIP] Add debugging CI Tools by @skoudoro in https://github.com/fury-gl/fury/pull/524
    • Deprecate and rename label to vector_text by @skoudoro in https://github.com/fury-gl/fury/pull/507
    • adding numpy_to_vtk_image_data method to utility by @ganimtron-10 in https://github.com/fury-gl/fury/pull/509
    • [FIX] Allow sphere actor to use faces/vertices without casting issues. In addition, update versioning system (versioneer). by @skoudoro in https://github.com/fury-gl/fury/pull/527
    • [FIX] remove update_user_matrix from text3d by @skoudoro in https://github.com/fury-gl/fury/pull/534
    • devmessias gsoc posts part 2: weeks 09, 10 and 11 by @devmessias in https://github.com/fury-gl/fury/pull/503
    • Remove and replace vtkactor from docstring by @skoudoro in https://github.com/fury-gl/fury/pull/532
    • [ENH] Add missing shaders block by @skoudoro in https://github.com/fury-gl/fury/pull/535
    • Remove VTK_9_PLUS flag by @skoudoro in https://github.com/fury-gl/fury/pull/536
    • Adding Anisotropy and Clear coat to PBR material by @guaje in https://github.com/fury-gl/fury/pull/523
    • Release preparation 0.8.0 by @skoudoro in https://github.com/fury-gl/fury/pull/538

    New Contributors

    • @mehabhalodiya made their first contribution in https://github.com/fury-gl/fury/pull/474
    • @PrayasJ made their first contribution in https://github.com/fury-gl/fury/pull/516
    • @xtanion made their first contribution in https://github.com/fury-gl/fury/pull/520

    Full Changelog: https://github.com/fury-gl/fury/compare/v0.7.1...v0.8.0

    Source code(tar.gz)
    Source code(zip)
  • v0.7.1-zenodo(Aug 4, 2021)

    Release notes v0.7.1

    Quick Overview

    • FURY paper added.
    • Fast selection of multiple objects added.
    • UI refactored.
    • Tests coverage increased.
    • New actor (Marker) added.
    • New primitive (Triangular Prism) added.
    • Demos added and updated.
    • Large Documentation Update.

    Details

    GitHub stats for 2021/03/13 - 2021/08/03 (tag: v0.7.0)

    These lists are automatically generated, and may be incomplete or contain duplicates.

    The following 15 authors contributed 211 commits.

    • Amit Chaudhari
    • Antriksh Misri
    • Bruno Messias
    • Daniel S. Katz
    • Eleftherios Garyfallidis
    • Gurdit Siyan
    • Javier Guaje
    • Jhalak Gupta
    • LoopThrough-i-j
    • MIHIR
    • Praneeth Shetty
    • Sajag Swami
    • Serge Koudoro
    • Hariharan Ayappane

    We closed a total of 89 issues, 35 pull requests and 54 regular issues; this is the full list (generated with the script :file:tools/github_stats.py):

    Pull Requests (35):

    • :ghpull:475: Gsoc blog 2021
    • :ghpull:476: Google Summer of Code blog posts
    • :ghpull:477: added blog posts for GSoC'21
    • :ghpull:442: added method to wrap overflowing text
    • :ghpull:441: Added border support in Panel2D
    • :ghpull:466: two more small bib changes
    • :ghpull:464: Paper Dan's Comments
    • :ghpull:459: extracted Button2D class from elements to core
    • :ghpull:430: Surface actor colormap fix
    • :ghpull:456: Updated about documentation
    • :ghpull:455: Fixed bibtex
    • :ghpull:454: Added missing DOIs and URLs
    • :ghpull:451: Typo fix
    • :ghpull:447: UI refactoring
    • :ghpull:438: Fast selection of multiple objects in 3D using GPU acceleration
    • :ghpull:420: added an example about graph-tool and nested stochastic block model
    • :ghpull:422: This allow to draw markers using shaders
    • :ghpull:444: Remove deprecated functions
    • :ghpull:440: added support for URL image in ImageContainer2D
    • :ghpull:356: Render a video on an actor.
    • :ghpull:436: [Fix] Update Azure pipeline for windows
    • :ghpull:434: WIP: added tests for layout module
    • :ghpull:426: Allows to define the priority of a shader_callback and obtain the vtkEventId
    • :ghpull:394: Fixed warnings in test_utils.py
    • :ghpull:415: update sk orcid
    • :ghpull:413: add nanohub doi
    • :ghpull:412: fix paper doi
    • :ghpull:386: FURY paper for Journal of Open Source Software (JOSS)
    • :ghpull:371: Textbox2d special character support
    • :ghpull:408: Updating the Missing Parenthesis
    • :ghpull:406: Removed unused library in FURY tutorial
    • :ghpull:405: Updating Redirecting Issues in Readme
    • :ghpull:399: Resolve warnings #317 & and Fix Issue: #355
    • :ghpull:393: added primitive and actor for triangular prism, added tests too
    • :ghpull:396: #317 Fixing Warnings during test : test_actors.py

    Issues (54):

    • :ghissue:407: UI Textbox background doesn't resize according to text in it.
    • :ghissue:421: Implementing the Resizing of Listbox
    • :ghissue:416: Fixing the Resizing Background issue of TextBox2D UI.
    • :ghissue:475: Gsoc blog 2021
    • :ghissue:476: Google Summer of Code blog posts
    • :ghissue:477: added blog posts for GSoC'21
    • :ghissue:442: added method to wrap overflowing text
    • :ghissue:441: Added border support in Panel2D
    • :ghissue:466: two more small bib changes
    • :ghissue:464: Paper Dan's Comments
    • :ghissue:445: [WIP] Example to show how to render multiple bonds
    • :ghissue:410: added BulletList to UI
    • :ghissue:459: extracted Button2D class from elements to core
    • :ghissue:429: Colormap not working as intended with surface actor
    • :ghissue:430: Surface actor colormap fix
    • :ghissue:450: Issue with references related to JOSS review
    • :ghissue:456: Updated about documentation
    • :ghissue:455: Fixed bibtex
    • :ghissue:454: Added missing DOIs and URLs
    • :ghissue:453: Add missing DOIs and URLs
    • :ghissue:451: Typo fix
    • :ghissue:439: [WIP] Space filling model
    • :ghissue:447: UI refactoring
    • :ghissue:438: Fast selection of multiple objects in 3D using GPU acceleration
    • :ghissue:420: added an example about graph-tool and nested stochastic block model
    • :ghissue:422: This allow to draw markers using shaders
    • :ghissue:444: Remove deprecated functions
    • :ghissue:440: added support for URL image in ImageContainer2D
    • :ghissue:356: Render a video on an actor.
    • :ghissue:436: [Fix] Update Azure pipeline for windows
    • :ghissue:434: WIP: added tests for layout module
    • :ghissue:403: Creating test for layout module
    • :ghissue:411: Added Layout test file
    • :ghissue:426: Allows to define the priority of a shader_callback and obtain the vtkEventId
    • :ghissue:417: Fixing pep issues
    • :ghissue:394: Fixed warnings in test_utils.py
    • :ghissue:415: update sk orcid
    • :ghissue:414: Duplicate ORCIDs in the JOSS paper
    • :ghissue:413: add nanohub doi
    • :ghissue:412: fix paper doi
    • :ghissue:386: FURY paper for Journal of Open Source Software (JOSS)
    • :ghissue:371: Textbox2d special character support
    • :ghissue:409: Segmentation Fault When Running Fury Tests
    • :ghissue:408: Updating the Missing Parenthesis
    • :ghissue:406: Removed unused library in FURY tutorial
    • :ghissue:405: Updating Redirecting Issues in Readme
    • :ghissue:375: Visuals for some parametric 2D functions
    • :ghissue:317: Track and fix warnings during tests.
    • :ghissue:355: [Vulnerability Bug] Used blacklisted dangerous function call that can lead to RCE
    • :ghissue:399: Resolve warnings #317 & and Fix Issue: #355
    • :ghissue:393: added primitive and actor for triangular prism, added tests too
    • :ghissue:395: FURY installation conflict
    • :ghissue:396: #317 Fixing Warnings during test : test_actors.py
    • :ghissue:358: Updated io.py
    Source code(tar.gz)
    Source code(zip)
Make sankey, alluvial and sankey bump plots in ggplot

The goal of ggsankey is to make beautiful sankey, alluvial and sankey bump plots in ggplot2

David Sjoberg 156 Jan 03, 2023
patchwork for matplotlib

patchworklib patchwork for matplotlib test code Preparation of example plots import seaborn as sns import numpy as np import pandas as pd #Bri

Mori Hideto 185 Jan 06, 2023
A Graph Learning library for Humans

A Graph Learning library for Humans These novel algorithms include but are not limited to: A graph construction and graph searching class can be found

Richard Tjörnhammar 1 Feb 08, 2022
Param: Make your Python code clearer and more reliable by declaring Parameters

Param Param is a library providing Parameters: Python attributes extended to have features such as type and range checking, dynamically generated valu

HoloViz 304 Jan 07, 2023
a robust room presence solution for home automation with nearly no false negatives

Argos Room Presence This project builds a room presence solution on top of Argos. Using just a cheap raspberry pi zero w (plus an attached pi camera,

Angad Singh 46 Sep 18, 2022
Visualize and compare datasets, target values and associations, with one line of code.

In-depth EDA (target analysis, comparison, feature analysis, correlation) in two lines of code! Sweetviz is an open-source Python library that generat

Francois Bertrand 2.3k Jan 05, 2023
A deceptively simple plotting library for Streamlit

🍅 Plost A deceptively simple plotting library for Streamlit. Because you've been writing plots wrong all this time. Getting started pip install plost

Thiago Teixeira 192 Dec 29, 2022
The Metabolomics Integrator (MINT) is a post-processing tool for liquid chromatography-mass spectrometry (LCMS) based metabolomics.

MINT (Metabolomics Integrator) The Metabolomics Integrator (MINT) is a post-processing tool for liquid chromatography-mass spectrometry (LCMS) based m

Sören Wacker 0 May 04, 2022
An open-source plotting library for statistical data.

Lets-Plot Lets-Plot is an open-source plotting library for statistical data. It is implemented using the Kotlin programming language. The design of Le

JetBrains 820 Jan 06, 2023
Create animated and pretty Pandas Dataframe or Pandas Series

Rich DataFrame Create animated and pretty Pandas Dataframe or Pandas Series, as shown below: Installation pip install rich-dataframe Usage Minimal exa

Khuyen Tran 92 Dec 26, 2022
Friday Night Funkin - converts a chart from 4/4 time to 6/8 time, or from regular to swing tempo.

Chart to swing converter As seen in https://twitter.com/i_winxd/status/1462220493558366214 A program written in python that converts a chart from 4/4

5 Dec 23, 2022
A python-generated website for visualizing the novel coronavirus (COVID-19) data for Greece.

COVID-19-Greece A python-generated website for visualizing the novel coronavirus (COVID-19) data for Greece. Data sources Data provided by Johns Hopki

Isabelle Viktoria Maciohsek 23 Jan 03, 2023
A grammar of graphics for Python

plotnine Latest Release License DOI Build Status Coverage Documentation plotnine is an implementation of a grammar of graphics in Python, it is based

Hassan Kibirige 3.3k Jan 01, 2023
kyle's vision of how datadog's python client should look

kyle's datadog python vision/proposal not for production use See examples/comprehensive.py for a mostly working example of the proposed API. 📈 🐶 ❤️

Kyle Verhoog 2 Nov 21, 2021
Analysis and plotting for motor/prop/ESC characterization, thrust vs RPM and torque vs thrust

esc_test This is a Python package used to plot and analyze data collected for the purpose of characterizing a particular propeller, motor, and ESC con

Alex Spitzer 1 Dec 28, 2021
A minimalistic wrapper around PyOpenGL to save development time

glpy glpy is pyOpenGl wrapper which lets you work with pyOpenGl easily.It is not meant to be a replacement for pyOpenGl but runs on top of pyOpenGl to

Abhinav 9 Apr 02, 2022
🧇 Make Waffle Charts in Python.

PyWaffle PyWaffle is an open source, MIT-licensed Python package for plotting waffle charts. It provides a Figure constructor class Waffle, which coul

Guangyang Li 528 Jan 02, 2023
Python & Julia port of codes in excellent R books

X4DS This repo is a collection of Python & Julia port of codes in the following excellent R books: An Introduction to Statistical Learning (ISLR) Stat

Gitony 5 Jun 21, 2022
Python ts2vg package provides high-performance algorithm implementations to build visibility graphs from time series data.

ts2vg: Time series to visibility graphs The Python ts2vg package provides high-performance algorithm implementations to build visibility graphs from t

Carlos Bergillos 26 Dec 17, 2022