{"id":34917794,"url":"https://github.com/ue-too/ue-too","last_synced_at":"2026-04-09T07:32:08.176Z","repository":{"id":208944719,"uuid":"722525804","full_name":"ue-too/ue-too","owner":"ue-too","description":"toolkit for interactive HTML canvas applications","archived":false,"fork":false,"pushed_at":"2025-12-20T10:59:47.000Z","size":13476,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-21T23:57:27.761Z","etag":null,"topics":["2d-canvas-toolkit","canvas","html-canvas","infinite-canvas","viewport"],"latest_commit_sha":null,"homepage":"https://ue-too.github.io/ue-too/","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/ue-too.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-11-23T10:39:56.000Z","updated_at":"2025-12-20T10:59:50.000Z","dependencies_parsed_at":"2024-02-05T06:31:30.487Z","dependency_job_id":"52cc28a8-ab3d-4f3f-b7d1-ee13f8c21afa","html_url":"https://github.com/ue-too/ue-too","commit_stats":null,"previous_names":["niuee/vcanvas","niuee/board","ue-too/ue-too"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/ue-too/ue-too","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ue-too%2Fue-too","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ue-too%2Fue-too/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ue-too%2Fue-too/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ue-too%2Fue-too/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ue-too","download_url":"https://codeload.github.com/ue-too/ue-too/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ue-too%2Fue-too/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28055270,"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","status":"online","status_checked_at":"2025-12-26T02:00:06.189Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["2d-canvas-toolkit","canvas","html-canvas","infinite-canvas","viewport"],"created_at":"2025-12-26T13:00:13.127Z","updated_at":"2026-04-09T07:32:08.164Z","avatar_url":"https://github.com/ue-too.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    uē-tôo\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    A toolkit for interactive HTML canvas applications\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![ci tests](https://img.shields.io/github/actions/workflow/status/niuee/board/ci-test.yml?label=test\u0026style=for-the-badge)](https://github.com/niuee/board/actions/workflows/ci-test.yml)\n[![License](https://img.shields.io/github/license/niuee/board?style=for-the-badge)](https://github.com/niuee/board/blob/main/LICENSE.txt)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#overview\"\u003eOverview\u003c/a\u003e •\n  \u003ca href=\"https://ue-too.github.io/documentation/\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"#packages\"\u003ePackages\u003c/a\u003e •\n  \u003ca href=\"#examples\"\u003eExamples\u003c/a\u003e •\n  \u003ca href=\"#development\"\u003eDevelopment\u003c/a\u003e\n\u003c/p\u003e\n\n## Packages\n\nue-too is organized into modular packages:\n\n- [**`@ue-too/being`**](https://www.npmjs.com/package/@ue-too/being) \u003ca href=\"https://www.npmjs.com/package/@ue-too/being\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/being.svg\" alt=\"package being's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - Finite state machine \n- [**`@ue-too/board`**](https://www.npmjs.com/package/@ue-too/board) \u003ca href=\"https://www.npmjs.com/package/@ue-too/board\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/board.svg\" alt=\"package board's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - Canvas viewport management with pan, zoom, and rotate functionality\n- [**`@ue-too/math`**](https://www.npmjs.com/package/@ue-too/math) \u003ca href=\"https://www.npmjs.com/package/@ue-too/math\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/math.svg\" alt=\"package math's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - Mathematical utilities for 2D point operations, transformations, and calculations\n- [**`@ue-too/animate`**](https://www.npmjs.com/package/@ue-too/animate) \u003ca href=\"https://www.npmjs.com/package/@ue-too/animate\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/animate.svg\" alt=\"package animate's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - Animation system for smooth transitions and keyframe animations\n- [**`@ue-too/dynamics`**](https://www.npmjs.com/package/@ue-too/dynamics) \u003ca href=\"https://www.npmjs.com/package/@ue-too/dynamics\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/dynamics.svg\" alt=\"package dynamics's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - 2D physics engine with collision detection, rigid bodies, and constraints\n- [**`@ue-too/curve`**](https://www.npmjs.com/package/@ue-too/curve) \u003cimg src=\"https://img.shields.io/npm/v/@ue-too/curve.svg\" alt=\"package curve's npm version\" style=\"vertical-align: middle\"\u003e  - Curve and path tools including Bézier curves, lines, and composite paths\n- [**`@ue-too/border`**](https://www.npmjs.com/package/@ue-too/border) \u003ca href=\"https://www.npmjs.com/package/@ue-too/border\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/border.svg\" alt=\"package border's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - Geographic projection utilities (great circle, rhumb line, map projections)\n- [**`@ue-too/ecs`**](https://www.npmjs.com/package/@ue-too/ecs) \u003ca href=\"https://www.npmjs.com/package/@ue-too/ecs\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@ue-too/ecs.svg\" alt=\"package ecs's npm version\" style=\"vertical-align: middle\"\u003e\u003c/a\u003e  - Entity Component System architecture support\n\n## Install Individual Packages\n\n```bash\n# Install specific packages you need\nnpm install @ue-too/board @ue-too/math @ue-too/animate\n```\n\n## Examples\n\nA live website containing the examples is available [here](https://ue-too.github.io/ue-too/).\n\nThis monorepo includes comprehensive examples demonstrating various packages and integrations:\n\n### Core Examples\n\n- [**Base Example**](https://ue-too.github.io/ue-too/base/) - Basic canvas viewport with pan, zoom, and rotate\n- [**Attach / Detach Example**](https://ue-too.github.io/ue-too/attach-detach/) - Dynamically attach and detach a canvas from the board\n- [**Navigation Example**](https://ue-too.github.io/ue-too/navigation/) - Keyboard-driven camera panning via `panByViewPort()`\n- [**Ruler Example**](https://ue-too.github.io/ue-too/ruler/) - Measurement ruler overlay that updates with pan and zoom\n- [**Camera Animation**](https://ue-too.github.io/ue-too/camera-animation/) - Smooth animated camera transitions on click\n- [**Image Example**](https://ue-too.github.io/ue-too/image-example/) - Upload and display an image on the pannable canvas\n- [**SVG Example**](https://ue-too.github.io/ue-too/svg/) - Board camera system applied to SVG elements\n\n### Framework Integrations\n\n- [**PixiJS Integration**](https://ue-too.github.io/ue-too/pixi-integration/) - Full-screen PixiJS canvas with board camera controls\n- [**Konva Integration**](https://ue-too.github.io/ue-too/konva-integration/) - Konva.js stage synchronized with board camera transforms\n- [**Fabric Integration**](https://ue-too.github.io/ue-too/fabric-integration/) - Fabric.js with toggleable movement/selection modes\n\n### Advanced Features\n\n- [**Physics Example**](https://ue-too.github.io/ue-too/physics/) - Four-bar linkage with rigid body physics and constraints\n\n### Running Examples\n\nTo run the examples locally:\n\n```bash\n# Clone the repository\ngit clone https://github.com/ue-too/ue-too.git\ncd ue-too\n\n# Install dependencies\nbun install\n\n# Start the development server\nbun dev:examples\n```\n\nThen, visit `http://localhost:5173` to explore all examples.\n\n## Development\n\n### Prerequisites\n\n- Bun 1.3.4\n\n### Setup\n\n```bash\n# Clone and install\ngit clone https://github.com/ue-too/ue-too.git\ncd ue-too\nbun install\n\n# Run tests\nbun test\n\n# Build all packages\nbun run build\n\n# Start development server\nbun dev:examples\n```\n\nRefer to the read me of each libary and application for more detail.\n\n### Project Structure\n\n```\nue-too/\n├── packages/                         # Individual packages\n│   ├── board/                        # Canvas viewport management\n│   ├── board-react-adapter/          # React integration for the board package\n│   ├── board-vue-adapter/            # Vue integration for the board package\n│   ├── board-pixi-integration/       # PixiJS integration for the board package\n│   ├── board-pixi-react-integration/ # PixiJS integration for the board package with React\n│   ├── board-konva-integration/      # Konva integration for the board package\n│   ├── board-fabric-integration/     # Fabric integration for the board package\n│   ├── math/                         # Mathematical utilities\n│   ├── animate/                      # Animation system\n│   ├── dynamics/                     # Physics engine\n│   ├── curve/                        # Curve and path tools\n│   ├── border/                       # Geographic projections\n│   ├── being/                        # Finite state machine\n│   └── ecs/                          # Entity Component System\n├── apps/                             # Example applications\n│   ├── examples/                     # Interactive examples\n│   ├── banana/                       # A simulation of a railway system using bezier curves. (WIP)\n│   ├── blast/                        # A tabletop game prototype maker. (WIP)\n│   ├── knit/                         # A knitting pattern editor. (WIP)\n│   └── horse-racing/                 # Horse racing canvas prototype. (WIP)\n└── scripts/                          # Build and deployment scripts\n```\n\n## License\n\nMIT License - see [LICENSE.txt](LICENSE.txt) for details.\n\n## Support\n\n- [GitHub Issues](https://github.com/ue-too/ue-too/issues) - Bug reports and feature requests\n\n\u003e Currently not accepting contributions yet. If there's any features you want to see, please let me know by creating an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fue-too%2Fue-too","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fue-too%2Fue-too","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fue-too%2Fue-too/lists"}