{"id":46695545,"url":"https://github.com/asciimoth/3a","last_synced_at":"2026-03-09T05:04:38.817Z","repository":{"id":139010890,"uuid":"415612449","full_name":"asciimoth/3a","owner":"asciimoth","description":"ASCII art file format","archived":false,"fork":false,"pushed_at":"2026-03-02T20:12:43.000Z","size":164,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-02T23:05:16.584Z","etag":null,"topics":["3a","animated-ascii-art","ascii","ascii-animation","ascii-art","ascii-graphics","asciiart","file-format","specification","text-format"],"latest_commit_sha":null,"homepage":"","language":"Roff","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asciimoth.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":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-10T14:41:08.000Z","updated_at":"2026-03-02T20:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd8a0f6e-c1c7-4788-b74f-1fe1fedd1a88","html_url":"https://github.com/asciimoth/3a","commit_stats":null,"previous_names":["asciimoth/3a"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asciimoth/3a","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asciimoth%2F3a","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asciimoth%2F3a/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asciimoth%2F3a/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asciimoth%2F3a/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asciimoth","download_url":"https://codeload.github.com/asciimoth/3a/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asciimoth%2F3a/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30283703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"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":["3a","animated-ascii-art","ascii","ascii-animation","ascii-art","ascii-graphics","asciiart","file-format","specification","text-format"],"created_at":"2026-03-09T05:04:31.837Z","updated_at":"2026-03-09T05:04:38.808Z","avatar_url":"https://github.com/asciimoth.png","language":"Roff","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Animated Ascii Art (3a)\n[![3a logo](./logo.webp)](./logo.3a)\n\n3A (Animated ASCII Art) is a straightforward, human-readable text format for\nstoring ASCII animations. It is disigned to be easy editable in any text editor\nwithout spechial software needed. Espechially it textual representation preserves\nart layout unlike plaintext with ANSI escape codes which is historically used to\nstore ASCII art.\n\nYou can read new 3a spec in [3a.md](./3a.md) and old deperecated one in [3a_legacy_spec.md](./3a_legacy_spec.md).\n\n# Motivation\nBack in 2020 I was ricing my linux system and planned to use ASCII animations\nin rice.\nFor some reason, I assumed that there was a common file format for such\nanimations and tools for working with it, but it turned out that this was not\nthe case. Therefore, I developed 3a.\n\n# Art Examples\n[logo.3a](./logo.3a) is an official 3a format example.  \nYou can also find more 3a art [here](https://github.com/asciimoth/3a_storage).\n\n# Software Implementations\n- tools\n    - [aaa](https://github.com/asciimoth/aaa) - Swiss Army knife tool for animated ascii art \n        - play 3a in terminal\n        - convert 3a to asciicast/durformat/png/gif/webp/mp4/etc\n        - editing api\n- libs\n    - [rs3a](https://github.com/asciimoth/rs3a)\n    - [py3a](https://github.com/asciimoth/py3a)\n    - [go3a](https://github.com/asciimoth/go3a)\n\n# Similar Projects\n- [durdraw](https://github.com/cmang/durdraw) is a TUI ascii art editor with it's own format (gzipped json) with animations support.\n- [nuru](https://github.com/domsson/nuru) is a binary ascii art format. Seems abandoned.\n\n# TODO\n- [X] [MIME info](https://specifications.freedesktop.org/shared-mime-info) files\n- [ ] Compact binary format\n- implementations\n    - [X] rust\n    - [X] go\n    - [X] python\n    - [ ] JS\n    - [ ] lua\n    - [ ] zig\n    - [ ] odin\n- conversions to other formats\n    - [X] SVG\n    - [X] asciicast\n    - [X] durdraw\n    - [X] ttyrec\n    - [X] png\n    - [X] gif\n    - [X] webp\n    - [X] mp4\n- [ ] Image/gif/video to 3a conversion\n- text editors support\n    - [ ] vim, nvim\n    - [ ] VsCode\n    - [ ] emacs?\n- ascii editors\n    - [ ] [playscii export plugin](https://jplebreton.com/playscii/howto_art.html#importandexport)\n- [ ] LSP?\n- [ ] 3a specific ascii art editor\n- file managers / viewers support \n    - [ ] yazi\n    - [ ] ranger\n    - [ ] n3?\n    - [ ] [allmytoes](https://gitlab.com/allmytoes/allmytoes)?\n- syntax highliters\n    - [ ] bat\n    - [ ] tree-sitter\n\n# License\nFiles in this repository are distributed under the [CC0 license](./LICENSE).  \n\u003cp xmlns:dct=\"http://purl.org/dc/terms/\"\u003e\n  \u003ca rel=\"license\"\n     href=\"http://creativecommons.org/publicdomain/zero/1.0/\"\u003e\n    \u003cimg src=\"http://i.creativecommons.org/p/zero/1.0/88x31.png\" style=\"border-style: none;\" alt=\"CC0\" /\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  To the extent possible under law,\n  \u003ca rel=\"dct:publisher\"\n     href=\"https://github.com/asciimoth\"\u003e\n    \u003cspan property=\"dct:title\"\u003easciimoth\u003c/span\u003e\u003c/a\u003e\n  has waived all copyright and related or neighboring rights to\n  \u003cspan property=\"dct:title\"\u003e3a\u003c/span\u003e.\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasciimoth%2F3a","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasciimoth%2F3a","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasciimoth%2F3a/lists"}