{"id":34034427,"url":"https://github.com/borgesaugusto/seapipy","last_synced_at":"2026-04-07T11:32:01.048Z","repository":{"id":158210533,"uuid":"565119574","full_name":"borgesaugusto/seapipy","owner":"borgesaugusto","description":"API for creating Surface Evolver files with python","archived":false,"fork":false,"pushed_at":"2025-03-03T14:15:50.000Z","size":82,"stargazers_count":7,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-15T11:13:59.439Z","etag":null,"topics":["api","science","simulations","surface-evolver","tissues"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/borgesaugusto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-12T12:01:43.000Z","updated_at":"2025-11-21T04:09:44.000Z","dependencies_parsed_at":"2024-03-19T10:29:06.695Z","dependency_job_id":"63bb1229-3260-4f55-a11c-c75b0e3e0b7c","html_url":"https://github.com/borgesaugusto/seapipy","commit_stats":null,"previous_names":["borgesaugusto/seapi"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/borgesaugusto/seapipy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borgesaugusto%2Fseapipy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borgesaugusto%2Fseapipy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borgesaugusto%2Fseapipy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borgesaugusto%2Fseapipy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borgesaugusto","download_url":"https://codeload.github.com/borgesaugusto/seapipy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borgesaugusto%2Fseapipy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31511589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["api","science","simulations","surface-evolver","tissues"],"created_at":"2025-12-13T19:46:07.102Z","updated_at":"2026-04-07T11:32:01.044Z","avatar_url":"https://github.com/borgesaugusto.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10809290.svg)](https://doi.org/10.5281/zenodo.10809290)\n[![PyPI version](https://badge.fury.io/py/seapipy.svg)](https://pypi.org/project/seapipy/)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/seapipy/badges/version.svg)](https://anaconda.org/conda-forge/seapipy)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/seapipy)](https://pypi.org/project/seapipy/)\n[![codecov](https://codecov.io/gh/borgesaugusto/seapipy/graph/badge.svg?token=SJFFTX412I)](https://codecov.io/gh/borgesaugusto/seapipy)\n[![Documentation Status](https://readthedocs.org/projects/seapipy/badge/?version=latest)](https://seapipy.readthedocs.io/en/latest/?badge=latest)\n# SeapiPy \n#### A Surface evolver API for python\n\n\n###  Documentation: \nhttps://seapipy.readthedocs.io/\n\n---\n\n###  Installation\nUsing PIP\n```bash\npip install seapipy\n```\n\nUsing conda\n```bash\nconda install conda-forge::seapipy\n```\n---\n\n###  Usage\nTo create a simple tissue 10x10 tissue, you can create a lattice object and initialize the vertices, edges and cells of \nthe system. Then, you might create values for the cell volumes directly. You could also create normally distributed\ntensions for the edges.\n```python\nimport seapipy as sep\nlattice = sep.lattice_class.Lattice(10, 10)\nvertices, edges, cells = lattice.create_example_lattice()\nvolume_values = {k: 500 for k, v in cells.items()}\ninitial_edges_tensions = lattice.get_normally_distributed_densities(edges)\n```\n\nThen, you could create the Surface Evolver object using this variables and then initialize the Surface Evolver slate \nwhere all the functions will be written into, before saving to disk\n```python\nse_object = sep.surface_evolver.SurfaceEvolver(vertices, \n                                               edges, \n                                               cells,\n                                               initial_edges_tensions, \n                                               volume_values, \n                                               polygonal=False)\nse_file = se_object.generate_fe_file()\n```\n\nThe polygonal=False allows curved edges to exist in the tissue. Now, various Surface Evolver functions might be added \nto the file buffer in the *se_file* variable. For example we could add an initial relaxing for the tissue with\n```python\nse_object.initial_relaxing()\n```\n\nAfterwards, we could add a saving function to create a checkpoint in the Surface Evolver simulation using\n```python\nse_object.save_one_step(\"path/to/saving/checkpoint\", \"step_\")\n```\n\nWhich would save the state of the Surface Evolver simulation at *\"path/to/saving/chekcpoint\"* with name *\"step_\"* followed\nby the number of times it has been saved. \nFinally you could save the whole Surface Evolver slate into the disk and run it using\n```python\nse_object.save_fe_file(\"SurfaceEvolverFile\")\nsep.command.run_evolver(\"path/to/SurfaceEvolverFile\", \"path/to/SurfaceEvolverExecutable\")\n```\n\n\n### How to cite us\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10809290.svg)](https://doi.org/10.5281/zenodo.10809290)\nThis tool is also described in [bioRxiv](https://www.biorxiv.org/content/10.1101/2024.05.28.595800v1).\n\nTo cite that preprint you may use:\n\n**ForSys: non-invasive stress inference from time-lapse microscopy**\nAugusto Borges, Jerónimo R. Miranda-Rodríguez, Alberto Sebastián Ceccarelli, Guilherme Ventura, Jakub Sedzinski, Hernán López-Schier, Osvaldo Chara\nbioRxiv 2024.05.28.595800; doi: https://doi.org/10.1101/2024.05.28.595800\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborgesaugusto%2Fseapipy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborgesaugusto%2Fseapipy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborgesaugusto%2Fseapipy/lists"}