LightWave2D


NameLightWave2D JSON
Version 0.4.1 PyPI version JSON
download
home_pageNone
SummaryA package for finite-difference time domain computation for light propagation
upload_time2025-07-19 18:00:47
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords fdtd light propagation physics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            LightWave2D
===========

.. list-table::
   :widths: 10 25 25
   :header-rows: 0

   * - Meta
     - |python|
     - |docs|
   * - Testing
     - |ci/cd|
     - |coverage|
   * - PyPi
     - |PyPi|
     - |PyPi_download|
   * - Anaconda
     - |anaconda|
     - |anaconda_download|



LightWave2D is a software designed for comprehensive 2D Finite-Difference Time-Domain (FDTD) simulations, featuring a user-friendly installation and operation process. The characterization of wave propagation, scattering, and diffraction within LightWave2D is determined by a set of specific components, as illustrated in the subsequent figure.

LightWave2D integrates various components, including waveguides, scatterers  (squares, circles, ellipses, triangles, lenses), gratings, and resonators. Additional parameters governing the simulation are contingent upon the attributes of the components and the simulation setup.

Key Features
************

- Intuitive API for configuring simulations.
- Support for waveguides, scatterers, gratings, and resonators.
- Built-in tools for rendering field animations.
- Extensive gallery of examples in the documentation.



----

Documentation
**************
All the latest available documentation is available `here <https://lightwave2d.readthedocs.io/en/latest/>`_ or you can click the following badge:

|docs|


----

Installation
************

For common versions of Windows, Linux, and macOS, (on x86_64 architecture), the package can readily be installed using pip;

.. code-block:: python

   >>> pip install LightWave2D

Building Documentation Locally
******************************

To generate the HTML documentation on your machine, install the optional dependencies and run:

.. code-block:: bash

   pip install .[documentation]
   cd docs && make html
   firefox build/html/index.html


Coding examples
***************


LightWave2D was developed with the aim of being an intuitive and easy to use tool.
All dimensional arguments can now be provided using `pint` quantities or strings with units.
Below are two examples that illustrate this:

# Spherical scatterer

.. code:: python

    from LightWave2D.grid import Grid
    from LightWave2D.experiment import Experiment
    from MPSPlots import colormaps
    import LightWave2D.units as units

    grid = Grid(
        resolution=0.1 * units.micrometer,
        size_x=32 * units.micrometer,
        size_y=20 * units.micrometer,
        n_steps=300
    )

   experiment = Experiment(grid=grid)

    scatterer = experiment.add_circle(
        position=('30%', '50%'),
        epsilon_r=2,
        radius=3 * units.micrometer
    )

    source = experiment.add_line_source(
        wavelength=1550 * units.nanometer,
        point_0=('10%', '100%'),
        point_1=('10%', '0%'),
        amplitude=10,
    )

   experiment.add_pml(order=1, width=70, sigma_max=5000)

   experiment.run_fdtd()

   animation = experiment.render_propagation(
       skip_frame=5,
       unit_size=5,
       colormap=colormaps.polytechnique.red_black_blue
   )

   animation.save('./spherical_scatterer.gif', writer='Pillow', fps=10)


|example_scatterer|


# Ring resonator


.. code:: python

   from LightWave2D.grid import Grid
   from LightWave2D.experiment import Experiment
   from MPSPlots.colormaps import polytechnique

    grid = Grid(
        resolution=0.1 * units.micrometer,
        size_x=50 * units.micrometer,
        size_y=30 * units.micrometer,
        n_steps=800
    )

   experiment = Experiment(grid=grid)


    scatterer = experiment.add_ring_resonator(
        position=('35%', '50%'),
        epsilon_r=1.5,
        inner_radius=4 * units.micrometer,
        width=2 * units.micrometer
    )

    source = experiment.add_point_source(
        wavelength=1550 * units.nanometer,
        position=('25%', '50%'),
        amplitude=100,
    )

   pml = experiment.add_pml(order=1, width=70, sigma_max=5000)

   experiment.run_fdtd()

   animation = experiment.render_propagation(skip_frame=5, colormap=polytechnique.red_black_blue)

   animation.save('./resonator.gif', writer='Pillow', fps=10)


|example_resonator|


# Ring resonator


.. code:: python

   from LightWave2D.grid import Grid
   from LightWave2D.experiment import Experiment
   from MPSPlots import colormaps

    grid = Grid(
        resolution=0.1 * units.micrometer,
        size_x=60 * units.micrometer,
        size_y=30 * units.micrometer,
        n_steps=1200
    )

   experiment = Experiment(grid=grid)

    scatterer = experiment.add_lense(
        position=('35%', '50%'),
        epsilon_r=2,
        curvature=10 * units.micrometer,
        width=5 * units.micrometer
    )

    source = experiment.add_point_source(
        wavelength=1550 * units.nanometer,
        position=('10%', '50%'),
        amplitude=10,
    )


   experiment.add_pml(order=1, width=50, sigma_max=5000)

   experiment.run_fdtd()

   experiment.plot_frame(
       frame_number=-1,
       scale_max=5,
       colormap=colormaps.polytechnique.red_black_blue
   )

   animation = experiment.render_propagation(
       skip_frame=5,
       unit_size=5,
       colormap=colormaps.polytechnique.red_black_blue
   )

   animation.save('./lense.gif', writer='Pillow', fps=10)


|example_lense|

Plenty of other examples are available online, I invite you to check the `examples <https://lightwave2d.readthedocs.io/en/master/gallery/index.html>`_
section of the documentation.


Testing
*******

To test locally (with cloning the GitHub repository) you'll need to install the dependencies and run the coverage command as

.. code:: python

   >>> git clone https://github.com/MartinPdeS/LightWave2D.git
   >>> cd LightWave2D
   >>> pip install -r requirements/requirements.txt
   >>> coverage run --source=LightWave2D --module pytest --verbose tests
   >>> coverage report --show-missing

Contributing
************

Contributions are welcome! Feel free to open an issue or submit a pull request on GitHub.


----

Contact Information
*******************

As of 2024 the project is still under development if you want to collaborate it would be a pleasure. I encourage you to contact me.

LightWave2D was written by `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_  .

Email:`martin.poinsinet-de-sivry@polymtl.ca <mailto:martin.poinsinet-de-sivry@polymtl.ca?subject=LightWave2D>`_ .



.. |example_resonator| image:: https://github.com/MartinPdeS/LightWave2D/blob/master/docs/images/resonator.gif?raw=true
   :alt: some image
   :class: with-shadow float-left
   :width: 800px

.. |example_lense| image:: https://github.com/MartinPdeS/LightWave2D/blob/master/docs/images/lense.gif?raw=true
   :alt: some image
   :class: with-shadow float-left
   :width: 800px

.. |example_scatterer| image:: https://github.com/MartinPdeS/LightWave2D/blob/master/docs/images/spherical_scatterer.gif?raw=true
   :alt: some image
   :class: with-shadow float-left
   :width: 800px

.. |python| image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg
   :target: https://www.python.org/

.. |docs| image:: https://github.com/martinpdes/LightWave2D/actions/workflows/deploy_documentation.yml/badge.svg
   :target: https://lightwave2d.readthedocs.io/en/latest/code.html
   :alt: Documentation Status

.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/LightWave2D/python-coverage-comment-action-data/badge.svg
   :alt: Unittest coverage
   :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/LightWave2D/blob/python-coverage-comment-action-data/htmlcov/index.html

.. |PyPi| image:: https://badge.fury.io/py/LightWave2D.svg
   :target: https://pypi.org/project/LightWave2D/

.. |PyPi_download| image:: https://img.shields.io/pypi/dm/lightwave2d.svg
   :target: https://pypistats.org/packages/lightwave2d

.. |ci/cd| image:: https://github.com/martinpdes/lightwave2d/actions/workflows/deploy_coverage.yml/badge.svg
    :alt: Unittest Status
    :target: https://martinpdes.github.io/LightWave2D/actions

.. |anaconda| image:: https://anaconda.org/martinpdes/lightwave2d/badges/version.svg
   :alt: Anaconda version
   :target: https://anaconda.org/martinpdes/lightwave2d

.. |anaconda_download| image:: https://anaconda.org/martinpdes/lightwave2d/badges/downloads.svg
   :alt: Anaconda downloads
   :target: https://anaconda.org/martinpdes/lightwave2d

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "LightWave2D",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "FDTD, Light, propagation, physics",
    "author": null,
    "author_email": "Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>",
    "download_url": null,
    "platform": null,
    "description": "LightWave2D\n===========\n\n.. list-table::\n   :widths: 10 25 25\n   :header-rows: 0\n\n   * - Meta\n     - |python|\n     - |docs|\n   * - Testing\n     - |ci/cd|\n     - |coverage|\n   * - PyPi\n     - |PyPi|\n     - |PyPi_download|\n   * - Anaconda\n     - |anaconda|\n     - |anaconda_download|\n\n\n\nLightWave2D is a software designed for comprehensive 2D Finite-Difference Time-Domain (FDTD) simulations, featuring a user-friendly installation and operation process. The characterization of wave propagation, scattering, and diffraction within LightWave2D is determined by a set of specific components, as illustrated in the subsequent figure.\n\nLightWave2D integrates various components, including waveguides, scatterers  (squares, circles, ellipses, triangles, lenses), gratings, and resonators. Additional parameters governing the simulation are contingent upon the attributes of the components and the simulation setup.\n\nKey Features\n************\n\n- Intuitive API for configuring simulations.\n- Support for waveguides, scatterers, gratings, and resonators.\n- Built-in tools for rendering field animations.\n- Extensive gallery of examples in the documentation.\n\n\n\n----\n\nDocumentation\n**************\nAll the latest available documentation is available `here <https://lightwave2d.readthedocs.io/en/latest/>`_ or you can click the following badge:\n\n|docs|\n\n\n----\n\nInstallation\n************\n\nFor common versions of Windows, Linux, and macOS, (on x86_64 architecture), the package can readily be installed using pip;\n\n.. code-block:: python\n\n   >>> pip install LightWave2D\n\nBuilding Documentation Locally\n******************************\n\nTo generate the HTML documentation on your machine, install the optional dependencies and run:\n\n.. code-block:: bash\n\n   pip install .[documentation]\n   cd docs && make html\n   firefox build/html/index.html\n\n\nCoding examples\n***************\n\n\nLightWave2D was developed with the aim of being an intuitive and easy to use tool.\nAll dimensional arguments can now be provided using `pint` quantities or strings with units.\nBelow are two examples that illustrate this:\n\n# Spherical scatterer\n\n.. code:: python\n\n    from LightWave2D.grid import Grid\n    from LightWave2D.experiment import Experiment\n    from MPSPlots import colormaps\n    import LightWave2D.units as units\n\n    grid = Grid(\n        resolution=0.1 * units.micrometer,\n        size_x=32 * units.micrometer,\n        size_y=20 * units.micrometer,\n        n_steps=300\n    )\n\n   experiment = Experiment(grid=grid)\n\n    scatterer = experiment.add_circle(\n        position=('30%', '50%'),\n        epsilon_r=2,\n        radius=3 * units.micrometer\n    )\n\n    source = experiment.add_line_source(\n        wavelength=1550 * units.nanometer,\n        point_0=('10%', '100%'),\n        point_1=('10%', '0%'),\n        amplitude=10,\n    )\n\n   experiment.add_pml(order=1, width=70, sigma_max=5000)\n\n   experiment.run_fdtd()\n\n   animation = experiment.render_propagation(\n       skip_frame=5,\n       unit_size=5,\n       colormap=colormaps.polytechnique.red_black_blue\n   )\n\n   animation.save('./spherical_scatterer.gif', writer='Pillow', fps=10)\n\n\n|example_scatterer|\n\n\n# Ring resonator\n\n\n.. code:: python\n\n   from LightWave2D.grid import Grid\n   from LightWave2D.experiment import Experiment\n   from MPSPlots.colormaps import polytechnique\n\n    grid = Grid(\n        resolution=0.1 * units.micrometer,\n        size_x=50 * units.micrometer,\n        size_y=30 * units.micrometer,\n        n_steps=800\n    )\n\n   experiment = Experiment(grid=grid)\n\n\n    scatterer = experiment.add_ring_resonator(\n        position=('35%', '50%'),\n        epsilon_r=1.5,\n        inner_radius=4 * units.micrometer,\n        width=2 * units.micrometer\n    )\n\n    source = experiment.add_point_source(\n        wavelength=1550 * units.nanometer,\n        position=('25%', '50%'),\n        amplitude=100,\n    )\n\n   pml = experiment.add_pml(order=1, width=70, sigma_max=5000)\n\n   experiment.run_fdtd()\n\n   animation = experiment.render_propagation(skip_frame=5, colormap=polytechnique.red_black_blue)\n\n   animation.save('./resonator.gif', writer='Pillow', fps=10)\n\n\n|example_resonator|\n\n\n# Ring resonator\n\n\n.. code:: python\n\n   from LightWave2D.grid import Grid\n   from LightWave2D.experiment import Experiment\n   from MPSPlots import colormaps\n\n    grid = Grid(\n        resolution=0.1 * units.micrometer,\n        size_x=60 * units.micrometer,\n        size_y=30 * units.micrometer,\n        n_steps=1200\n    )\n\n   experiment = Experiment(grid=grid)\n\n    scatterer = experiment.add_lense(\n        position=('35%', '50%'),\n        epsilon_r=2,\n        curvature=10 * units.micrometer,\n        width=5 * units.micrometer\n    )\n\n    source = experiment.add_point_source(\n        wavelength=1550 * units.nanometer,\n        position=('10%', '50%'),\n        amplitude=10,\n    )\n\n\n   experiment.add_pml(order=1, width=50, sigma_max=5000)\n\n   experiment.run_fdtd()\n\n   experiment.plot_frame(\n       frame_number=-1,\n       scale_max=5,\n       colormap=colormaps.polytechnique.red_black_blue\n   )\n\n   animation = experiment.render_propagation(\n       skip_frame=5,\n       unit_size=5,\n       colormap=colormaps.polytechnique.red_black_blue\n   )\n\n   animation.save('./lense.gif', writer='Pillow', fps=10)\n\n\n|example_lense|\n\nPlenty of other examples are available online, I invite you to check the `examples <https://lightwave2d.readthedocs.io/en/master/gallery/index.html>`_\nsection of the documentation.\n\n\nTesting\n*******\n\nTo test locally (with cloning the GitHub repository) you'll need to install the dependencies and run the coverage command as\n\n.. code:: python\n\n   >>> git clone https://github.com/MartinPdeS/LightWave2D.git\n   >>> cd LightWave2D\n   >>> pip install -r requirements/requirements.txt\n   >>> coverage run --source=LightWave2D --module pytest --verbose tests\n   >>> coverage report --show-missing\n\nContributing\n************\n\nContributions are welcome! Feel free to open an issue or submit a pull request on GitHub.\n\n\n----\n\nContact Information\n*******************\n\nAs of 2024 the project is still under development if you want to collaborate it would be a pleasure. I encourage you to contact me.\n\nLightWave2D was written by `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_  .\n\nEmail:`martin.poinsinet-de-sivry@polymtl.ca <mailto:martin.poinsinet-de-sivry@polymtl.ca?subject=LightWave2D>`_ .\n\n\n\n.. |example_resonator| image:: https://github.com/MartinPdeS/LightWave2D/blob/master/docs/images/resonator.gif?raw=true\n   :alt: some image\n   :class: with-shadow float-left\n   :width: 800px\n\n.. |example_lense| image:: https://github.com/MartinPdeS/LightWave2D/blob/master/docs/images/lense.gif?raw=true\n   :alt: some image\n   :class: with-shadow float-left\n   :width: 800px\n\n.. |example_scatterer| image:: https://github.com/MartinPdeS/LightWave2D/blob/master/docs/images/spherical_scatterer.gif?raw=true\n   :alt: some image\n   :class: with-shadow float-left\n   :width: 800px\n\n.. |python| image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg\n   :target: https://www.python.org/\n\n.. |docs| image:: https://github.com/martinpdes/LightWave2D/actions/workflows/deploy_documentation.yml/badge.svg\n   :target: https://lightwave2d.readthedocs.io/en/latest/code.html\n   :alt: Documentation Status\n\n.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/LightWave2D/python-coverage-comment-action-data/badge.svg\n   :alt: Unittest coverage\n   :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/LightWave2D/blob/python-coverage-comment-action-data/htmlcov/index.html\n\n.. |PyPi| image:: https://badge.fury.io/py/LightWave2D.svg\n   :target: https://pypi.org/project/LightWave2D/\n\n.. |PyPi_download| image:: https://img.shields.io/pypi/dm/lightwave2d.svg\n   :target: https://pypistats.org/packages/lightwave2d\n\n.. |ci/cd| image:: https://github.com/martinpdes/lightwave2d/actions/workflows/deploy_coverage.yml/badge.svg\n    :alt: Unittest Status\n    :target: https://martinpdes.github.io/LightWave2D/actions\n\n.. |anaconda| image:: https://anaconda.org/martinpdes/lightwave2d/badges/version.svg\n   :alt: Anaconda version\n   :target: https://anaconda.org/martinpdes/lightwave2d\n\n.. |anaconda_download| image:: https://anaconda.org/martinpdes/lightwave2d/badges/downloads.svg\n   :alt: Anaconda downloads\n   :target: https://anaconda.org/martinpdes/lightwave2d\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A package for finite-difference time domain computation for light propagation",
    "version": "0.4.1",
    "project_urls": {
        "Documentation": "https://martinpdes.github.io/LightWave2D/",
        "Repository": "https://github.com/MartinPdeS/LightWave2D"
    },
    "split_keywords": [
        "fdtd",
        " light",
        " propagation",
        " physics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c070f721c5f367b02307c7a7566157e0d4988f120331f330a49f7fa8ba8ba9ec",
                "md5": "8a0334b657e40c3c80fe6a755b991941",
                "sha256": "54d972db59b82d8d3ceb79e4d5196aef2e39386432546b39a00e5dc99517cd99"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp310-cp310-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8a0334b657e40c3c80fe6a755b991941",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1669090,
            "upload_time": "2025-07-19T18:00:47",
            "upload_time_iso_8601": "2025-07-19T18:00:47.305775Z",
            "url": "https://files.pythonhosted.org/packages/c0/70/f721c5f367b02307c7a7566157e0d4988f120331f330a49f7fa8ba8ba9ec/lightwave2d-0.4.1-cp310-cp310-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3a273053e418aed2bc71187a75b4bd7017f900ef51b98295ec99690fbcfee48",
                "md5": "9928f5ab224107371073fa1896f2c296",
                "sha256": "052c64fefeac2f47b9e2d2243fc9db3a1115725e88deb476cdbefbcd3512b350"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9928f5ab224107371073fa1896f2c296",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 713398,
            "upload_time": "2025-07-19T18:00:51",
            "upload_time_iso_8601": "2025-07-19T18:00:51.347299Z",
            "url": "https://files.pythonhosted.org/packages/f3/a2/73053e418aed2bc71187a75b4bd7017f900ef51b98295ec99690fbcfee48/lightwave2d-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "96af4928d43c4186260615be3748d61b77e0009a03e0ff0167ed761bdce4d6a5",
                "md5": "720ba85883d06b6d5f9a322b592ffecd",
                "sha256": "6e05e757566fe2e2b670662c2ba1a49bcf6d12cab67ffe6351917955e1823bda"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "720ba85883d06b6d5f9a322b592ffecd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1080580,
            "upload_time": "2025-07-19T18:00:55",
            "upload_time_iso_8601": "2025-07-19T18:00:55.653673Z",
            "url": "https://files.pythonhosted.org/packages/96/af/4928d43c4186260615be3748d61b77e0009a03e0ff0167ed761bdce4d6a5/lightwave2d-0.4.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3a9546feb74fbb195f9e63be1b6d50d5f18a679f384de29e69149489599cbf34",
                "md5": "213edce39e00a18d228b5a631d440fe0",
                "sha256": "5524e1245765529be827844e94cc8776e92c5bb6cbbf6197c7c68c9fd439b515"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp311-cp311-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "213edce39e00a18d228b5a631d440fe0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 2027408,
            "upload_time": "2025-07-19T18:00:48",
            "upload_time_iso_8601": "2025-07-19T18:00:48.652259Z",
            "url": "https://files.pythonhosted.org/packages/3a/95/46feb74fbb195f9e63be1b6d50d5f18a679f384de29e69149489599cbf34/lightwave2d-0.4.1-cp311-cp311-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "88214804e7e767b1e415c49c259d00447aecd9d849527004e1ac7f3e3e1a3e13",
                "md5": "b08033547567d94c496a9f5a763b7c7a",
                "sha256": "bb1af67e689741a93336cb2a0c32b78f0010a215feac1ba135248dae1aa1bf04"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b08033547567d94c496a9f5a763b7c7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1035231,
            "upload_time": "2025-07-19T18:00:52",
            "upload_time_iso_8601": "2025-07-19T18:00:52.868724Z",
            "url": "https://files.pythonhosted.org/packages/88/21/4804e7e767b1e415c49c259d00447aecd9d849527004e1ac7f3e3e1a3e13/lightwave2d-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "114f4490774b584b32b576b47a77b51941086ffe7ac30382ee6365bb15587fc3",
                "md5": "079169b989a80b0240eec5b5b1602439",
                "sha256": "d4699b756e487e2837a6268d5bc55132c280ad747c44ce7d37788aabda1e4d21"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "079169b989a80b0240eec5b5b1602439",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1783719,
            "upload_time": "2025-07-19T18:00:56",
            "upload_time_iso_8601": "2025-07-19T18:00:56.759290Z",
            "url": "https://files.pythonhosted.org/packages/11/4f/4490774b584b32b576b47a77b51941086ffe7ac30382ee6365bb15587fc3/lightwave2d-0.4.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3989044e53331f60a1543b3249a9aac377ea45dd98a939ebb20a5b3e95271b83",
                "md5": "ae66e5ab86f1abd178731a30e8ac82bf",
                "sha256": "8636ff5ad5594a2486924f75cd71f509ceae9389a4d463e347202c0258d45b03"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp312-cp312-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ae66e5ab86f1abd178731a30e8ac82bf",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 2387659,
            "upload_time": "2025-07-19T18:00:50",
            "upload_time_iso_8601": "2025-07-19T18:00:50.156789Z",
            "url": "https://files.pythonhosted.org/packages/39/89/044e53331f60a1543b3249a9aac377ea45dd98a939ebb20a5b3e95271b83/lightwave2d-0.4.1-cp312-cp312-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "68fb70e6537eed279073ba55c1d86af74cc7ea3b538bbb052754429974776ec7",
                "md5": "190daa1e89d6e35a0c5596e2b20767da",
                "sha256": "2f8ca50e08e47fc5dfe2df7713538b963ef75be5016dcb8be3d5e76b9166691e"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "190daa1e89d6e35a0c5596e2b20767da",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 1361013,
            "upload_time": "2025-07-19T18:00:54",
            "upload_time_iso_8601": "2025-07-19T18:00:54.552404Z",
            "url": "https://files.pythonhosted.org/packages/68/fb/70e6537eed279073ba55c1d86af74cc7ea3b538bbb052754429974776ec7/lightwave2d-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7f87a63db0ad2afb8d674e48477bd9d9fa9ccba471e1802506c29ef69fb18644",
                "md5": "0ebe2a02f1adf9d1713952587c589070",
                "sha256": "d21083cb9627d08544ccbe25c16a323b1838401364e0b4bb7f8767d9afb0396a"
            },
            "downloads": -1,
            "filename": "lightwave2d-0.4.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0ebe2a02f1adf9d1713952587c589070",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 2490764,
            "upload_time": "2025-07-19T18:00:58",
            "upload_time_iso_8601": "2025-07-19T18:00:58.268748Z",
            "url": "https://files.pythonhosted.org/packages/7f/87/a63db0ad2afb8d674e48477bd9d9fa9ccba471e1802506c29ef69fb18644/lightwave2d-0.4.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-19 18:00:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MartinPdeS",
    "github_project": "LightWave2D",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "lightwave2d"
}
        
Elapsed time: 0.44190s