{"id":42855372,"url":"https://github.com/vrruiz/plus5","last_synced_at":"2026-01-30T12:19:29.225Z","repository":{"id":44568102,"uuid":"327309117","full_name":"vrruiz/plus5","owner":"vrruiz","description":"Python3 port of a subset of the Processing API.","archived":false,"fork":false,"pushed_at":"2022-02-07T22:55:47.000Z","size":26,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-27T19:03:09.043Z","etag":null,"topics":["processing","processing-python","pygame","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vrruiz.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}},"created_at":"2021-01-06T12:45:44.000Z","updated_at":"2022-02-07T22:55:50.000Z","dependencies_parsed_at":"2022-08-29T06:51:43.468Z","dependency_job_id":null,"html_url":"https://github.com/vrruiz/plus5","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vrruiz/plus5","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrruiz%2Fplus5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrruiz%2Fplus5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrruiz%2Fplus5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrruiz%2Fplus5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vrruiz","download_url":"https://codeload.github.com/vrruiz/plus5/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrruiz%2Fplus5/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28912749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: 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":["processing","processing-python","pygame","python"],"created_at":"2026-01-30T12:19:28.490Z","updated_at":"2026-01-30T12:19:29.220Z","avatar_url":"https://github.com/vrruiz.png","language":"Python","readme":"# Plus5\n\nPython3 port of a subset of the Processing API.\n\nInspired by [p5](https://pypi.org/project/p5/), Plus5 uses [PyGame](https://www.pygame.org/news) library to implement a subset of the [Processing API](https://py.processing.org/). It's in an early stage but works very fast, thanks to PyGame.\n\n## Requirements\n\nThe current requirements are Python3 and PyGame. PyGame uses [Simple Directmedia Layer (SDL)](https://www.libsdl.org/). In order to use fonts, sdl2-ttf must be also installed in the systems.\n\n- Python3\n- PyGame \u003e= 1.9.\n- libsdl2-ttf\n\nPlus5, Python3, PyGame and SDL are supported in *multiple operating systems* (Linux, Windows, Mac).\n\n## Installation\n\n### Using pip\n\n```bash\n$ pip install -r requirements.txt\n$ pip install plus5\n```\n\n### Using git\n\n```bash\n$ git clone https://github.com/vrruiz/plus5/\n$ cd plus5/\n$ python3 setup.py install\n```\n\n### libsdl2-ttf\n\nIn some operating systems, this library must be installed manually.\n\n## Usage\n\nExample. A rectangle follows the mouse pointer.\n\n```python\nfrom plus5 import *\n\ndef setup():\n    size(500,500)\n\ndef draw():\n    background(127,0,0)\n    stroke(255)\n    fill(0,127,0)\n    rect(mouseX - 25, mouseY - 25, 50, 50)\n\nrun()\n```\n\n## Reference\n\nUsually, the calls are the same as in [Processing.py Reference](https://py.processing.org/reference/).\n\n### Structure\n\n```python\ndraw()\nexit()\nnoLoop()\nsetup()\nsize(width, height)\nredraw()\nrun()\n```\n\n### Environment\n```python\ndelay(milliseconds)\ndisplayHeight\ndisplayWidth\nframeCount\nframeRate\nheight\nsize()\nwidth\n```\n\n### Color\n\n```python\nbackground(color)\ncolor(color)\nfill(color)\nnoFill()\nnoStroke()\nstroke(width)\nstrokeWeight(weight)\n```\n\n### Input\n\n```python\nkey\nkeyCode\nkeyIsPressed\nkeyPressed()\nkeyReleased()\nmouseIsPressed\nmousePressed()\nmouseReleased()\nmouseX\nmouseY\npmouseX\npmouseY\n```\n\n### Output\n\n```python\nsave()\n```\n\n### Shape\n\n```python\narc(x, y, width, height, start, stop)\ncircle(a, b, extent)\nellipse(x, y, width, height)\nline(x1, y1, x2, y2)\npoint(x, y)\nquad(x1, y1, x2, y2, x3, y3, x4, y4)\nrect(x, y, width, height)\nsquare(a, b, extent)\ntriangle(x1, y1, x2, y2, x3, y3)\n```\n\n### Text\n\n```python\ntext(string, x, y)\ntextSize(size)\ntextFont(font, size)\nloadFont(name)\ncreateFont(name, size)\n```\n\n### Image\n\n```python\nloadImage(filename)\nimage(img, x, y)\n```\n\n### Math\n```python\nacos(value)\nasin(value)\natan(value)\natan2(y, x)\nceil(n)\ncos(radians)\ndegrees(radians)\nexp(n)\nfloor(n)\nlog(n)\nradians(degrees)\nsin(radians)\nsqrt(n)\ntan(radians)\n```\n\n### Constants\n```python\nPI = 3.14159265358979323846\nTWO_PI = 6.28318530717958647693\nHALF_PI =1.57079632679489661923\nTAU = 6.28318530717958647693\nHALF_PI = 0.7853982\n```\n\n## Tutorials\n\n- [Introducción a Plus5: Programación gráfica fácil con Python](https://vrruiz.github.io/plus5-tutorial/)\n\n## Author\n\nVíctor R. Ruiz \u003crvr@linotipo.es\u003e\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrruiz%2Fplus5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvrruiz%2Fplus5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrruiz%2Fplus5/lists"}