{"adoption": {"forks": 124, "observed_at": "2026-08-28T04:04:12.911619+00:00", "stars": 1275}, "canonical_url": "https://ross.abutalabs.com/products/viga", "card": {"archived": false, "artifact_type": "framework", "description": "VIGA: Vision-as-Inverse-Graphics Agent", "domain": ["artificial-intelligence", "computer-vision", "graphics", "large-language-models"], "enriched": true, "function": ["agent-framework", "computer-vision", "graphics"], "health_score": 69, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Fugtemypt123/VIGA"], "name": "Fugtemypt123/VIGA", "platform": ["python"], "pushed_at": "2026-05-06T07:32:15+00:00", "repo": "Fugtemypt123/VIGA", "stars": 1275, "tags": ["inverse-graphics", "blender", "3d-reconstruction", "scene-synthesis", "analysis-by-synthesis", "multimodal-llm", "agentic-coding", "render-and-verify", "slide-generation", "4d-scenes", "no-finetuning", "ai-agents", "linux", "gpu"], "topics": [], "urls": [], "use_cases": ["reconstruct a 3D scene from a single image as editable Blender code", "generate Blender Python programs whose renders match a target image", "automatically synthesize PowerPoint slide layouts from reference images", "build 4D dynamic scenes with physics from images", "evaluate multimodal agents on 3D graphics editing benchmarks like BlenderBench and BlenderGym", "iteratively refine generated scene code until rendered output matches a reference"], "what_it_is": "VIGA is an analysis-by-synthesis code agent that reconstructs 3D scenes and slide layouts from images by generating and executing Blender Python or PowerPoint programs. A single self-reflective agent alternates between a Generator role that writes scene code and a Verifier role that compares renders against the target image, iterating until they match without any finetuning.", "when_to_avoid": ["You need fast or real-time reconstruction - the write-run-compare-revise loop is slow and GPU/CUDA-intensive", "You want production photogrammetry or CAD tools rather than a research-grade LLM agent", "Your environment cannot call large multimodal LLMs due to cost, latency, or privacy constraints"], "when_to_choose": ["You want image-to-3D reconstruction that outputs editable, programmatic Blender scenes rather than raw meshes", "You need a self-correcting generate-render-verify agent loop that works without finetuning", "You want to reproduce or extend research on BlenderBench, BlenderGym, or SlideBench, or run custom static/dynamic scene modes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/viga", "repo": "Fugtemypt123/VIGA", "role": "main", "score": 55}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.911619+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:02:59.735943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4872e91b9c0df368c2eea8c3d88ddb3187cb2193583727d03730292a45ece8fc", "fetched_at": "2026-08-28T04:04:12.911619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fugtemypt123/VIGA"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 30, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 433, "days_push": 119, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 55, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}