{"id":18016671,"url":"https://github.com/lichtso/contrast_renderer","last_synced_at":"2025-04-05T04:11:42.622Z","repository":{"id":39414478,"uuid":"330263331","full_name":"Lichtso/contrast_renderer","owner":"Lichtso","description":"Contrast is a WebGPU based 2D render engine written in Rust","archived":false,"fork":false,"pushed_at":"2024-11-21T18:55:40.000Z","size":712,"stargazers_count":77,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T04:11:24.917Z","etag":null,"topics":["2d-rendering-engine","font-rendering","graphics","rust","ui","vector-graphics","wasm","webgpu"],"latest_commit_sha":null,"homepage":"https://lichtso.github.io/contrast_renderer/","language":"Rust","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/Lichtso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-01-16T21:41:01.000Z","updated_at":"2025-03-28T12:18:07.000Z","dependencies_parsed_at":"2024-12-29T07:15:36.302Z","dependency_job_id":null,"html_url":"https://github.com/Lichtso/contrast_renderer","commit_stats":{"total_commits":94,"total_committers":1,"mean_commits":94.0,"dds":0.0,"last_synced_commit":"dce694965e7dc0c143b5193f24b5bc25a4934a94"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lichtso%2Fcontrast_renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lichtso%2Fcontrast_renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lichtso%2Fcontrast_renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lichtso%2Fcontrast_renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lichtso","download_url":"https://codeload.github.com/Lichtso/contrast_renderer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284951,"owners_count":20913704,"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":["2d-rendering-engine","font-rendering","graphics","rust","ui","vector-graphics","wasm","webgpu"],"created_at":"2024-10-30T04:18:57.917Z","updated_at":"2025-04-05T04:11:42.597Z","avatar_url":"https://github.com/Lichtso.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![actions](https://github.com/Lichtso/contrast_renderer/actions/workflows/actions.yml/badge.svg)](https://github.com/Lichtso/contrast_renderer/actions/workflows/actions.yml)\n[![Docs](https://docs.rs/contrast_renderer/badge.svg)](https://docs.rs/contrast_renderer/)\n[![crates.io](https://img.shields.io/crates/v/contrast_renderer.svg)](https://crates.io/crates/contrast_renderer)\n\n# Contrast Renderer\nContrast is a [web-gpu](https://gpuweb.github.io/gpuweb/) based 2D renderer written in [Rust](https://www.rust-lang.org/).\nIt renders planar [vector graphics](https://en.wikipedia.org/wiki/Vector_graphics) and can easily be integrated with other forward-rendering code.\nFilling uses [implicit curves](https://en.wikipedia.org/wiki/Implicit_curve) and is resolution-independent, while stroking uses [parametric curves](https://en.wikipedia.org/wiki/Parametric_equation) and is approximated via polygon [tesselation](https://en.wikipedia.org/wiki/Tessellation_(computer_graphics)).\nThis way you can have non-diegetic, diegetic and spacial [GUI](https://en.wikipedia.org/wiki/Graphical_user_interface) elements on any flat plane:\n- As classic 2D menu overlay on top of the 3D scene.\n- As [HUD](https://en.wikipedia.org/wiki/Head-up_display) fixed relative to the camera movement but occluded by the 3D scene.\n- As decals on walls or [holograms](https://en.wikipedia.org/wiki/Holography_in_fiction) hovering in the 3D scene.\n\nTo get started, checkout the [showcase example](examples/showcase/main.rs).\n\n\n## Feature Roadmap\n    ✓ Supported and implemented\n    ◯ Rudimentary support\n    ✗ Planned support, not implemented\n\n- Rendering\n    - Anti Aliasing ◯\n        - MSAA ✓\n    - Instancing ✓\n    - Customizable (User Defined)\n        - Shaders ✓\n        - Blending ✓\n        - Depth Test ✓\n        - Back Face Culling ✓\n    - Nestable Clipping ✓\n    - Nestable Transparency Layers (Group Opacity) ✓\n- Filling\n    - Paths\n        - Polygons ✓\n        - Bezier Curves\n            - Integral (Normal)\n                - Quadratic ✓\n                - Cubic ✓\n            - Rational (Weighted)\n                - Quadratic ✓\n                - Cubic ✓\n    - Winding Fill Rules ✓\n- Stroking\n    - Paths\n        - Polygons ✓\n        - Bezier Curves\n            - Approximation\n                - Uniformly Spaced Parameters ✓\n                - Uniform Tangent Angle ✓\n                - Uniform Arc Length ✗\n            - Integral (Normal)\n                - Quadratic ✓\n                - Cubic ✓\n            - Rational (Weighted)\n                - Quadratic ✓\n                - Cubic ✓\n    - Stroke Width ✓\n    - Stroke Offset ◯\n    - Closed / Open ✓\n    - Line Joins\n        - (Clipped) Miter ✓\n        - Bevel ✓\n        - Round ✓\n    - Line Caps (Square, Round, Out, In, Right, Left, Butt) ✓\n    - Dashing\n        - Phase Translation ✓\n        - Repeating Gap Intervals ✓\n        - Dynamically Adjustable (for Animations) ✓\n- Path Constructors\n    - Polygon ✓\n    - Bezier Curves\n        - Integral (Normal)\n            - Quadratic ✓\n            - Cubic ✓\n        - Rational (Weighted)\n            - Quadratic ✓\n            - Cubic ✓\n    - Rect ✓\n    - Rounded Rect ✓\n    - Ellipse ✓\n    - Circle ✓\n    - Elliptical Arc ✓\n    - [Optional] Font (TTF)\n        - Glyph ✓\n        - Text ◯\n- Graphical User Interface ✗\n\n\n## Dependencies\n\n### Dependencies of the Library\n- Graphics API: [wgpu](https://wgpu.rs/)\n- Geometric Algebra: [geometric_algebra](https://github.com/Lichtso/geometric_algebra)\n- [Optional] Font Loader: [ttf-parser](https://github.com/RazrFalcon/ttf-parser)\n\n### Dependencies of the Examples\n- Window API: [winit](https://github.com/rust-windowing/winit)\n- Logging: [log](https://github.com/rust-lang/log)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flichtso%2Fcontrast_renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flichtso%2Fcontrast_renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flichtso%2Fcontrast_renderer/lists"}