{"id":28929436,"url":"https://github.com/ihefty/luv2draw","last_synced_at":"2026-05-09T19:32:11.073Z","repository":{"id":300251555,"uuid":"1005682169","full_name":"IHEfty/Luv2Draw","owner":"IHEfty","description":"3D Reference Tool for Artists","archived":false,"fork":false,"pushed_at":"2025-06-20T17:20:37.000Z","size":1160,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T17:31:30.258Z","etag":null,"topics":["art","art-tool","css3","html5","javascript","loomis-method","luv2draw","perspective-tool","reference-images","threejs","webgl"],"latest_commit_sha":null,"homepage":"https://ihefty.github.io/Luv2Draw/","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/IHEfty.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,"zenodo":null}},"created_at":"2025-06-20T16:18:18.000Z","updated_at":"2025-06-20T17:20:40.000Z","dependencies_parsed_at":"2025-06-20T17:33:23.563Z","dependency_job_id":null,"html_url":"https://github.com/IHEfty/Luv2Draw","commit_stats":null,"previous_names":["ihefty/luv2drow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IHEfty/Luv2Draw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IHEfty%2FLuv2Draw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IHEfty%2FLuv2Draw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IHEfty%2FLuv2Draw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IHEfty%2FLuv2Draw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IHEfty","download_url":"https://codeload.github.com/IHEfty/Luv2Draw/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IHEfty%2FLuv2Draw/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261304781,"owners_count":23138405,"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":["art","art-tool","css3","html5","javascript","loomis-method","luv2draw","perspective-tool","reference-images","threejs","webgl"],"created_at":"2025-06-22T14:16:44.539Z","updated_at":"2026-05-09T19:32:11.065Z","avatar_url":"https://github.com/IHEfty.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Luv2Draw\n\n\u003ctable\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/circle.png\" alt=\"Image 00\" width=\"650\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/circle1.png\" alt=\"Image 01\" width=\"650\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/cube.png\" alt=\"Image 02\" width=\"650\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\nA simple web tool to help artists visualize perspective by overlaying 3D shapes on reference images.\n\n## Why I Made This\n\nI recently started learning to draw and was struggling with head perspective. When using reference images, I found it difficult to understand the actual 3D orientation. This tool allows you to:\n\n- Upload any reference image\n- Overlay adjustable 3D shapes (currently circle/sphere and cube)\n- Rotate and adjust opacity of the 3D model\n- Scale and position the reference image\n\nWhile simple, it helped me better visualize the spatial relationships in my references. If similar tools exist, I'd love to know about them as they might offer additional features!\n\n## Features\n\n- **Reference Image Controls**:\n  - Upload any image\n  - Adjust scale, position, width and height\n  - Automatic height scaling based on aspect ratio\n\n- **3D Model Controls**:\n  - Toggle between circle/sphere (Loomis-style) and cube\n  - Adjust opacity (0-1)\n  - Rotate on X, Y, and Z axes\n  - Orbit controls to view from any angle\n\n## How to Use\n\n1. Upload your reference image using the upload button\n2. Adjust the image position/size as needed\n3. Select your 3D shape (circle or cube)\n4. Rotate the shape to match your reference perspective\n5. Adjust opacity to see through the model\n6. Use mouse to orbit around the scene\n\n## Technical Details\n\nBuilt with:\n- Three.js for 3D rendering\n- Plain HTML/CSS for the UI\n- No dependencies beyond Three.js\n\n## Future Improvements (not available right now)\n\nPotential additions:\n- More 3D shapes (cylinders, planes, etc.)\n- Save/load configurations\n- Measurement tools\n- Grid overlays\n- Multiple reference images \n\n## Installation\n\nNo installation needed - just open `index.html` in a browser. For local development:\n1. Clone the repo\n2. Open `index.html` in a browser\n   \nOr, Simply visit the live demo: 👉 [Here](https://ihefty.github.io/Luv2Draw/)\n\n## License\n\nMIT License - feel free to use and modify\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihefty%2Fluv2draw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fihefty%2Fluv2draw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihefty%2Fluv2draw/lists"}