[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-95904":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},95904,"p5-playground","blakeshao\u002Fp5-playground","blakeshao","A repository for p5-playground",null,"JavaScript",130,15,1,0,27,3.61,false,"main",true,[],"2026-09-21 02:04:29","# p5 brushes\n\nA small collection of p5.js drawing brushes sharing one page. Open\n`index.html` in a browser (p5.js loads from a CDN) and pick a brush from the\nmenu in the top-left corner, or open `index.html?brush=\u003Cname>` directly.\n\n| Brush | Folder | What it draws |\n| --- | --- | --- |\n| Score Brush | [`brushes\u002Fscore\u002F`](brushes\u002Fscore\u002FREADME.md) | ribbons of staff lines with animated graphic-score snippets in five colours |\n| Schematic Brush | [`brushes\u002Fschematic\u002F`](brushes\u002Fschematic\u002FREADME.md) | randomized patch-diagram and CAD-style schematics, black ink on white, annotated with random numbers |\n| Balloon Brush | [`brushes\u002Fballoon\u002F`](brushes\u002Fballoon\u002FREADME.md) | a hidden poster of perfectly fitting airbrushed blobs in five spot colours, revealed blob by blob along each line you draw |\n\nEach brush's own README lists its keys. `?auto` on any brush starts with a\npage that paints itself, and `h` hides the help panel.\n\n## Layout\n\n```\nindex.html              page chrome: brush picker + help panel\nshared\u002Floader.js        reads ?brush=, fills the picker, loads the sketch\nshared\u002Fhud.js           buildHUD \u002F setStatus \u002F toggleHUD \u002F onCanvas \u002F\n                        drawBrushCursor helpers\nbrushes\u002F\u003Cname>\u002Fsketch.js   one p5 global-mode sketch per brush\n```\n\n## Adding a brush\n\n1. Create `brushes\u002F\u003Cname>\u002Fsketch.js` with the usual p5 `setup` \u002F `draw`.\n2. Declare `const BRUSH = { name, swatch, help }` (help is a list of\n   `[keys, effect]` pairs) and call `buildHUD(BRUSH)` from `setup`.\n3. Report live state with `setStatus(text)`; guard `mousePressed(e)` with\n   `onCanvas(e)` so clicks on the picker do not start strokes.\n4. Call `drawBrushCursor()` at the end of `draw`. Every brush shares one\n   cursor — a single black dot, whatever the brush or its mode — so do not\n   draw a cursor of your own.\n5. Add `['\u003Cname>', 'Display Name']` to `BRUSHES` in `shared\u002Floader.js`.\n","p5-playground 是一个基于 p5.js 的交互式画笔实验集，提供多种风格化绘图工具供实时创作与探索。核心功能包括 Score Brush（五色乐谱条带）、Schematic Brush（CAD式电路图草绘）和 Balloon Brush（渐进展示的气刷色块），均通过统一页面加载、支持 URL 参数直连与自动绘制模式。项目采用模块化设计，各画笔独立实现但共享 UI 控件、光标与状态管理逻辑，强调轻量、可扩展与教学友好性。适用于创意编程教学、算法可视化演示及生成艺术原型开发等场景。",2,"2026-09-05 02:30:09","CREATED_QUERY"]