{"id":43146159,"url":"https://github.com/humanbydefinition/p5.asciify","last_synced_at":"2026-01-31T23:45:40.889Z","repository":{"id":248604799,"uuid":"828548286","full_name":"humanbydefinition/p5.asciify","owner":"humanbydefinition","description":"Apply real-time ASCII conversion to your favorite WebGL p5.js sketches instantly.","archived":false,"fork":false,"pushed_at":"2026-01-02T17:26:41.000Z","size":27926,"stargazers_count":114,"open_issues_count":5,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-15T20:29:42.230Z","etag":null,"topics":["ascii","p5-library","p5js","textmode"],"latest_commit_sha":null,"homepage":"http://p5.textmode.art/","language":"TypeScript","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/humanbydefinition.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"humanbydefinition","patreon":null,"open_collective":null,"ko_fi":"humanbydefinition","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":["https://tzkt.io/humanbydefinition.tez","https://etherscan.io/address/0xAA14d79ccF069d3E57eeCb6822c1F241e0d46C42"]}},"created_at":"2024-07-14T13:36:02.000Z","updated_at":"2025-12-31T09:39:44.000Z","dependencies_parsed_at":"2024-07-27T01:28:48.312Z","dependency_job_id":"67369698-6a41-424f-9295-79e57545f714","html_url":"https://github.com/humanbydefinition/p5.asciify","commit_stats":null,"previous_names":["humanbydefinition/p5.asciify","humanbydefinition/p5-asciify"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/humanbydefinition/p5.asciify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humanbydefinition%2Fp5.asciify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humanbydefinition%2Fp5.asciify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humanbydefinition%2Fp5.asciify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humanbydefinition%2Fp5.asciify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/humanbydefinition","download_url":"https://codeload.github.com/humanbydefinition/p5.asciify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humanbydefinition%2Fp5.asciify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28961067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T23:03:11.038Z","status":"ssl_error","status_checked_at":"2026-01-31T22:56:44.691Z","response_time":128,"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":["ascii","p5-library","p5js","textmode"],"created_at":"2026-01-31T23:45:40.353Z","updated_at":"2026-01-31T23:45:40.884Z","avatar_url":"https://github.com/humanbydefinition.png","language":"TypeScript","funding_links":["https://github.com/sponsors/humanbydefinition","https://ko-fi.com/humanbydefinition","https://tzkt.io/humanbydefinition.tez","https://etherscan.io/address/0xAA14d79ccF069d3E57eeCb6822c1F241e0d46C42","https://ko-fi.com/V7V8JG2FY"],"categories":["Libraries"],"sub_categories":[],"readme":"# p5.asciify ( ͡° ͜ʖ ͡°)\n\n\u003e [!IMPORTANT]\n\u003e **p5.asciify is no longer being actively maintained.** I've created a new, independent creative coding library for real-time ASCII/textmode graphics called [**textmode.js**](https://github.com/humanbydefinition/textmode.js), which is framework-agnostic and also works with libraries like p5.js. Check out the [documentation](https://code.textmode.art/) and [web editor](https://editor.textmode.art) to get started!\n\u003e\n\u003e The existing `p5.asciify` documentation, examples, and library remain fully available and functional.\n\n\u003cdiv align=\"center\"\u003e\n\n![p5.asciify logo](https://github.com/user-attachments/assets/1eab7a7c-0bf4-4d09-9fed-378715454ec2)\n\n| [![p5.js](https://img.shields.io/badge/p5.js-ED225D?logo=p5.js\u0026logoColor=white)](https://p5js.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/) [![WebGL](https://img.shields.io/badge/WebGL1-990000?logo=webgl\u0026logoColor=white)](https://www.khronos.org/webgl/) [![Vite](https://img.shields.io/badge/Vite-646CFF?logo=vite\u0026logoColor=white)](https://vitejs.dev/) | [![docs](https://img.shields.io/badge/docs-docusaurus-3ECC5F?logo=docusaurus\u0026logoColor=white)](https://p5.textmode.art/) [![Discord](https://img.shields.io/discord/1357070706181017691?color=5865F2\u0026label=Discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/sjrw8QXNks) | [![ko-fi](https://shields.io/badge/ko--fi-donate-ff5f5f?logo=ko-fi)](https://ko-fi.com/V7V8JG2FY) [![Github-sponsors](https://img.shields.io/badge/sponsor-30363D?logo=GitHub-Sponsors\u0026logoColor=#EA4AAA)](https://github.com/sponsors/humanbydefinition) |\n|:-------------|:-------------|:-------------|\n\n\u003c/div\u003e\n\n`p5.asciify` is a powerful add-on library for [p5.js](https://p5js.org/) and the most advanced open-source ASCII conversion library available, designed to transform canvases and textures in `WEBGL` mode into dynamic ASCII/textmode representations in real-time. With `p5.asciify`, you can create intricate ASCII art, textmode games, interactive ASCII experiences, and much more in the web browser with ease.\n\n`p5.asciify` is used in live coding performances, installations, interactive art projects and more, allowing artists and developers to explore the unique aesthetic of ASCII art in a modern context. The library is designed to be flexible, efficient, and easy to use, offering a comprehensive range of tools to help you develop unique and engaging ASCII projects.\n\n## Features\n\n- **Renderer management**: Create and manage multiple ASCII renderers with different settings to create a unique rendering pipeline.\n- **Pre-built renderers**: Add pre-built renderers, like `'brightness'`- or `'edge'`-based ASCII converters, to your pipeline.\n- **Custom renderers**: Add your own custom ASCII renderers to the pipeline through code to create unique effects by controlling each cell's ASCII character, character color, background color, and more individually.\n- **Asciifier management**: Create and manage multiple asciifiers to apply different ASCII rendering pipelines to different textures or the main canvas in parallel.\n- **Font management**: Set the font and font size for all ASCII renderers in the pipeline of an asciifier.\n- **Grid management**: Apply a perfect and responsive grid based on the canvas/texture dimensions, font size, and font metrics, or create a custom grid with a specific number of columns and rows.\n- **WebGL1/WebGL2 support**: All shader code provided by `p5.asciify` is written in `GLSL ES 1.0`, making it compatible with both `WebGL1` and `WebGL2` contexts, allowing for a wide range of devices to run your ASCII projects.\n- **Export functionality**: Export your ASCII art as `.txt`, `.svg` and `.json` files for easy sharing and printing, complementing the native image and GIF saving capabilities of `p5.js`.\n- **Plugin system**: Create reusable custom renderers as plugins and share them with the community!\n\n## Installation\n\n### Prerequisites\n\n- `p5.asciify` requires [`p5.js`](https://p5js.org/) version `1.8.0` or later.\n  - The library is also compatible with `p5.js` versions `2.x.x`, but only from version [`2.0.2`](https://github.com/processing/p5.js/releases/tag/v2.0.2) onward.\n- `p5.asciify` only runs in [`WEBGL`](https://p5js.org/reference/#/p5/createCanvas) mode, so make sure to set up your canvas accordingly:\n\n```javascript\nfunction setup() {\n  createCanvas(800, 800, WEBGL);\n}\n```\n\nThat's it! You're now ready to install and use `p5.asciify` in your `p5.js` projects.\n\n### Importing the library\n\n#### Global mode\n\nDownload the latest `umd` version of `p5.asciify` from the [**GitHub releases page**](https://github.com/humanbydefinition/p5.asciify/releases/) or import it directly from a CDN like [**jsDelivr**](https://www.jsdelivr.com/package/npm/p5.asciify). The library is distributed as a single JavaScript file, which you can include in your project by adding the following script tag to your HTML file \u003cu\u003eafter\u003c/u\u003e importing `p5.js`:\n\n```html\n\u003c!-- Import p5.js before p5.asciify --\u003e\n\u003cscript src=\"path/to/library/p5.min.js\"\u003e\u003c/script\u003e\n\n\u003c!-- Import p5.asciify after p5.js --\u003e\n\u003cscript src=\"path/to/library/p5.asciify.umd.js\"\u003e\u003c/script\u003e\n\n\u003c!-- Or import it directly from a CDN like jsDelivr\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/p5.asciify@0.10.3/dist/p5.asciify.umd.min.js\"\u003e\u003c/script\u003e \n--\u003e\n```\n\n#### Instance mode\n\nDownload the latest `esm` version of `p5.asciify` from the [**GitHub releases page**](https://github.com/humanbydefinition/p5.asciify/releases/), import it directly from a CDN like [**jsDelivr**](https://www.jsdelivr.com/package/npm/p5.asciify), or install it using `npm`:\n\n```bash\nnpm install p5.asciify\n```\n\n```javascript\nimport p5 from 'p5';\nimport { p5asciify } from 'p5.asciify';\n\nconst sketch = (p) =\u003e {\n    p.setup = () =\u003e {\n      p.createCanvas(800, 800, p.WEBGL);\n    };\n\n    p.draw = () =\u003e {\n      p.clear();\n      p.background(0);\n      p.fill(255);\n      p.rotateX(p.radians(p.frameCount * 3));\n      p.rotateZ(p.radians(p.frameCount));\n      p.directionalLight(255, 255, 255, 0, 0, -1);\n      p.box(800, 100, 100);\n    };\n};\n\nlet myp5 = new p5(sketch);\n```\n\n\u003chr /\u003e\n\nAt this point - when imported correctly - your `p5.js` canvas in `WEBGL` mode should already be converted into a grid of ASCII characters with the default settings applied. Happy coding! (｡◕‿‿◕｡)\n\n## Learn more\n\n### 📚 [Visit the Official Documentation](https://p5.textmode.art/)\n\nExplore the comprehensive documentation at [p5.textmode.art](https://p5.textmode.art/) for:\n- Detailed guides\n- Interactive examples\n- Complete API reference\n- Tips and tricks\n- ... and much more!\n\nThe documentation will help you unlock the full potential of p5.asciify in your creative coding projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumanbydefinition%2Fp5.asciify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhumanbydefinition%2Fp5.asciify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumanbydefinition%2Fp5.asciify/lists"}