{"id":20662411,"url":"https://github.com/evanzhoudev/donut-js","last_synced_at":"2025-09-26T23:31:29.325Z","repository":{"id":180836041,"uuid":"665779340","full_name":"EvanZhouDev/donut-js","owner":"EvanZhouDev","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-13T01:56:46.000Z","size":3,"stargazers_count":66,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-16T19:14:38.240Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EvanZhouDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-07-13T01:50:43.000Z","updated_at":"2024-09-27T10:23:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"36bb352e-4c00-4864-bef9-9a121bc9c40d","html_url":"https://github.com/EvanZhouDev/donut-js","commit_stats":null,"previous_names":["evanzhoudev/donut-js"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanZhouDev%2Fdonut-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanZhouDev%2Fdonut-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanZhouDev%2Fdonut-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanZhouDev%2Fdonut-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EvanZhouDev","download_url":"https://codeload.github.com/EvanZhouDev/donut-js/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234360839,"owners_count":18819962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-16T19:14:04.610Z","updated_at":"2025-09-26T23:31:28.959Z","avatar_url":"https://github.com/EvanZhouDev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍩 donut.js\n```javascript\n            let A=0,B=0,M=\n        Math;const a=()=\u003e{let s\n      =[],t=[];A+=.05,B+=.07;const\n    o=M.cos(A),e=M.sin(A),n=M.cos(B\n   ),c=M.sin(B);for (let o=0;o\u003c1760;\n o++)s[o]=o%80==79?\"\\n\":\" \",t[o]=0;for\n(let i=0;i\u003c6.28;i+=.07){const r=M.cos(\ni),a=M.sin(i);for(let i=0;i\u003c6.28;i+=.02\n){const l=M.sin        (i),f=M.cos(i),A\n=r+2,B=1/(l*A*          e+a*o+5),d=l*A*\no-a*e,m=40+30*          B*(f*A*n-d*c)|0\n,v=12+15*B*(f*A        *c+d*n)|0,I=m+80\n*v,h=8*((a*e-l*r*o)*n-l*r*e-a*o-f*r*c)|\n 0;v\u003c22\u0026\u0026v\u003e=0\u0026\u0026m\u003e=0\u0026\u0026m\u003c79\u0026\u0026B\u003et[I]\u0026\u0026(t[\n I]=B,s[I]=\".,-~:;=!*#$@\"[h\u003e0?h:0])}}\n  process.stdout.write(`\\x1b[J\\x1b[H`\n  +s.join(\"\"))},i=setInterval(a,50\n      );/*=!!!**********!!!==:*/\n        /*~~;EvanZhouDev;;:~*/\n            /*.,-2023--,.*/\n```\n\nRun with\n```bash\nnode donut.min.js\n```\n\n\n`donut.c`, remade in JS... and the code still looks like a donut!\n\n`donut.js` is the original code, and `donut.min.js` is the actual donut-shaped obfuscated code.\n\nModified from the [original DOM code](https://www.a1k0n.net/js/donut.js), written by Andy Sloane with AI, and a little bit of playing around with indentation 😅.\n\nIf the donut looks elliptical, then you may need to adjust your font to be more square, or just modify line width and font spacing to make it more square.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevanzhoudev%2Fdonut-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevanzhoudev%2Fdonut-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevanzhoudev%2Fdonut-js/lists"}