{"id":37075238,"url":"https://github.com/jcpassieux/pyxel","last_synced_at":"2026-01-14T08:51:09.839Z","repository":{"id":47205511,"uuid":"151866942","full_name":"jcpassieux/pyxel","owner":"jcpassieux","description":"Python FE-DIC library","archived":false,"fork":false,"pushed_at":"2025-09-08T10:01:32.000Z","size":42699,"stargazers_count":42,"open_issues_count":4,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-29T09:02:57.601Z","etag":null,"topics":["digital-image-correlation","digital-volume-correlation","image-correlation","image-matching","image-registration","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jcpassieux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-06T17:55:07.000Z","updated_at":"2025-09-23T21:07:57.000Z","dependencies_parsed_at":"2023-01-23T09:15:40.327Z","dependency_job_id":"e5f1c1de-0eab-4283-b22b-07ddfecfce1f","html_url":"https://github.com/jcpassieux/pyxel","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/jcpassieux/pyxel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcpassieux%2Fpyxel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcpassieux%2Fpyxel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcpassieux%2Fpyxel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcpassieux%2Fpyxel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcpassieux","download_url":"https://codeload.github.com/jcpassieux/pyxel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcpassieux%2Fpyxel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["digital-image-correlation","digital-volume-correlation","image-correlation","image-matching","image-registration","python"],"created_at":"2026-01-14T08:51:09.203Z","updated_at":"2026-01-14T08:51:09.824Z","avatar_url":"https://github.com/jcpassieux.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyxel\n\u003e**py**thon library for e**x**perimental mechanics using finite **el**ements\n\n**pyxel** is an open-source Finite Element (FE) Digital Image/Volume Correlation (DIC/DVC) library for experimental mechanics application. It is freely available for research and teaching.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jcpassieux/pyxel/blob/master/pyxel.png\" width=\"150\" title=\"hover text\"\u003e\n\u003c/p\u003e\n\nIn its present form, it is restricted to 2D-DIC and 3D-DVC. Stereo (SDIC) will be updated later. \nThe gray level conservation problem is written in the physical space. It relies on camera models (which must be calibrated) and on a dedicated quadrature rule in the FE mesh space. Considering front-parallel camera settings, the implemented camera model is a simplified pinhole model (including only 4 parameters 2D: 2 translations, 1 rotation and the focal length and 7 parameters in 3D: focal length, 3 rotations, 3 translations). More complex camera models (including distorsions) could easily be implemented within this framework (next update?). The library natively includes linear and quadratic triangles, quadrilateral, tetraedral, hexaedral elements. The library also exports the results in different format such that the measurements can be post-processed ether with MatPlotLib or using Paraview.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jcpassieux/pyxel/blob/master/pyxel-figs.png\" height=\"200\" title=\"hover text\"\u003e\n\u003c/p\u003e\n\n1. SCRIPT FILE\n    - pyxel is a library. For each testcase, a script file must be written.\n    - a set of sample scripts named `example_#.py` is provided in the `./test` folder\n     to understand the main functionnalities of the library.\n\n2. ABOUT MESHES\n    - A Finite Element mesh is required for the displacement measurement. In pyxel, a mesh is entierly defined by two variables:\u003cbr\u003e\n        (1) a python dictionary for the elements (the key is the element type and the value is a numpy array of size NE * NN (NN being the number of nodes of this element type and NE the number of elements). The element type label (according to gmsh numbering). \n        example:\n        ```python\n\t  e = dict()\n       e[3] = np.array([[n0, n1, n2, n3]])\n        ```\n        (2) a numpy array n for the node coordinates, example:\n        ```python\n        n = np.array([[x0, y0], [x1, y1], ...])\n        ```\n    - There is an home made mesher for parallelipedic domains, given the approximate elements size in each direction (see examples). We recommand to use external meshers like, for instance, `gmsh`\n    - To read/write the meshes, we use the usefull library `meshio`. \n\n3. MINIMAL SAMPLE CODE\n    - to run a simple 2D-DIC analysis:\n      ```python\n      f = px.Image('img-0.tif').Load()\n      g = px.Image('img-1.tif').Load()\n      roi = np.array([[ 100,   100], [ 500,  500]])\n      m, cam = px.MeshFromROI(roi, 50, typel=3)\n      U, res = px.Correlate(f, g, m, cam)\n      ```\n    - A multiscale initialization is usually required\n      ```python\n      U = px.MultiscaleInit(f, g, m, cam, scales=[3, 2, 1], l0=30)\n      ```\n4. OUTPUT FILES\n    - It is possible to post-process the results directly using matplotlib.\n      ```python\n      m.PlotContourDispl(U, s=30)\n      ```\n    - but a more convenient way (especially in DVC) is to use Paraview www.paraview.org \n      ```python\n      m.VTKSol('vtufile', U)\n      ```    \n5. TERM OF USE. \n    This program is a free software: you can redistribute it/or modify it. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.\n    **pyxel** is distributed under the terms of CeCILL which is a french free software license agreement in the spirit of GNU GPL\n\n6. DEPENDANCIES \n    `numpy`, `scipy`, `matplotlib`, `opencv-python`, `scikit-image`, `meshio`, `gmsh`\n\n7. INSTALL\n    - It is possible to clone the git repository, or simply install it using PyPI:\n      ```python\n      pip install pyxel-dic\n      ```\n# References\n\nJean-Charles Passieux, Robin Bouclier. **Classic and Inverse Compositional Gauss-Newton in Global DIC**. *International Journal for Numerical Methods in Engineering*, 119(6), p.453-468, 2019.\n\nJean-Charles Passieux. **pyxel, an open-source FE-DIC library**. *Zenodo*. http://doi.org/10.5281/zenodo.4654018\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcpassieux%2Fpyxel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcpassieux%2Fpyxel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcpassieux%2Fpyxel/lists"}