kornia/kornia-rs - Open Source PR Review Scorecard

🦀 Low-level 3D Computer Vision library in Rust

C-Rank Grade: S (Elite) - 73/100

External PR Merge Rate: 74%

Response Time: 2d

First Timer Success: 75%

Frequently Asked Questions

Is kornia/kornia-rs welcoming to first-time open-source contributors?

kornia/kornia-rs has a recorded first-timer success rate of 75.0%. Repositories ranked S typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in kornia/kornia-rs respond to incoming external pull requests in approximately 42.8 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 73.1 C-Rank™ score (S Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 73.1 places kornia/kornia-rs in the S tier.

What is the external contributor pull request merge rate for kornia/kornia-rs?

The external contributor pull request merge rate for kornia/kornia-rs is 74.2%, based on public PR activity from non-core contributors.

Are there Good First Issues available in kornia/kornia-rs?

kornia/kornia-rs currently has 49 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

kornia
kornia/kornia-rsS•Elite726
GitHub
Back to Explorer
kornia

kornia/kornia-rs

726
Active (30d)S•Elite(73/100)Rust

🦀 Low-level 3D Computer Vision library in Rust

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Quality Architect

Warmth Score
6.7/10
Patience Score
7.3/10
Nitpick Rate
41%

Rigorous architecture standards (63% critical review signals). Ensure PRs strictly follow guidelines before requesting review in kornia/kornia-rs.

Top PR Submission Do's

  • •Add unit tests with >80% coverage for modified code paths
  • •Run repository linter and code formatters locally before pushing
  • •Link relevant GitHub issue ID in PR description pre-flight checklist

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without referencing an existing issue
  • •Do not mix refactoring and feature logic into a single commit
  • •Do not ping maintainers repeatedly within 24 hours of opening
Response Velocity
1 days+
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
74.2%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
75.0%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
16 core
Highly collaborative maintainer core
Diagnostic Health HUD
74.2%
Merge Gauge
75.0%
1st-Timer
Community Vibe52/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for kornia/kornia-rs
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/kornia/kornia-rs)](https://getmerged.abhishekco.de/kornia/kornia-rs?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

🐛 Describe the bug solve_epnp gives a wrong pose even on perfect (noise-free) data when it gets 5 or more points. The cause is an index mismatch on the 4 null-space vectors in crates/kornia-3d/src/pnp/epnp.rs: build_l6x10 reverses the columns, so beta[0] belongs to the smallest-eigenvalue vector (as in the paper and OpenCV) pose_from_betas (null4 * beta) and gauss_newton use the columns in the stored order, where column 0 is the 4th smallest So the initial betas are computed for one order and applied to the other. 🔄 Steps to Reproduce Put the code below in `crates/kornia-3d/tests/epnp_repro.rs` and run: cargo test --release -p kornia-3d --test epnp_repro -- --nocapture 💻 Minimal Code Example use kornia_3d::pnp::{solve_pnp, EPnPParams, PnPMethod}; use kornia_algebra::{Mat3AF32, Vec2F32, Vec3AF32}; #[test] fn epnp_noise_free_is_exact() { let k = Mat3AF32::from_cols_array(&[800.0, 0.0, 0.0, 0.0, 800.0, 0.0, 640.0, 480.0, 1.0]); let t = [0.2f32, -0.1, 5.0]; let worl

📅 Opened Oct 10, 2026💬 2 comments
Quality: 85/100Contribute

🐛 Describe the bug VideoWriter::close() never returns. The program hangs forever. Why: close() does three things in this order: sends "end of stream" to the pipeline stops the pipeline (set_state(Null)) waits for the bus thread to finish The bus thread waits for an "end of stream" message. But step 2 stops the pipeline before that message is sent, so the message never comes. The bus thread waits forever, and close() never returns. 🔄 Steps to Reproduce 1. Create a writer with `VideoWriter::new(...)` 2. Call `start()` 3. Call `write()` a few times 4. Call `close()` → it never returns The existing tests `video_writer_rgb8u` and `video_writer_mono8u` also hang when run with: cargo test -p kornia-io --features gstreamer -- --ignored video_writer 💻 Minimal Code Example use kornia_image::{Image, ImageSize}; use kornia_io::gstreamer::video::{ImageFormat, VideoCodec, VideoWriter}; let size = ImageSize { width: 64, height: 48 }; let mut writer = VideoWriter::new("out.mp4", VideoCo

📅 Opened Oct 9, 2026💬 2 comments
Quality: 85/100Contribute

🐛 Describe the bug DistanceTransformExecutor::execute returns non-zero distances for foreground pixels when the image width or height is greater than 4096. distance_transform_1d computes the parabola intersection as (f[q] + (q * q) as f32) - (f[r] + (r * r) as f32) (crates/kornia-imgproc/src/distance_transform.rs:145). f32 stores integers exactly only up to 2^24 = 4096², so for q > 4096 the squares are rounded. For example, 4097² = 16,785,409 is stored as 16,785,408, which moves the intersection between pixels 4097 and 4098 from 4097.5 to 4098.0, so pixel 4098 is assigned to the wrong parabola. Found by @edgarriba while reviewing #1166. 🔄 Steps to Reproduce 1. Create an all-zero `Image<f32, 1>` larger than 4096 px in width or height (e.g. 7680×4320, 4200×1 or 1×4200). 2. Set the whole first row and first column to 1.0 (foreground). 3. Run `DistanceTransformExecutor::new().execute(&image)`. 4. Every pixel in row 0 and column 0 should have distance 0, but many after index 4097

📅 Opened Oct 9, 2026💬 3 comments
Quality: 100/100Contribute

🐛 Describe the bug I got an error when i run cargo test on my local machine and it said: ---- ba_schur::tests::defaults_are_bit_identical_to_the_frozen_solver stdout ---- thread 'ba_schur::tests::defaults_are_bit_identical_to_the_frozen_solver' (70594) panicked at crates/kornia-3d/src/ba_schur.rs:5868:13: assertion `left == right` failed: walkthrough (sparse=false) digest 0xe291e8283f21d870 != frozen 0x456e57e0017646b6 — a default-parameter solve is no longer bit-identical to the pre-intrinsics solver left: 16326085383750277232 right: 5003032855664019126 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: ba_schur::tests::defaults_are_bit_identical_to_the_frozen_solver 🔄 Steps to Reproduce . 💻 Minimal Code Example ✅ Expected behavior . ❌ Actual behavior . 🔧 Environment - kornia-rs version: 0.2.0 - Rust version: 1.98.1 - Cargo version: 1.98.1 - OS: Linux(Debian 13 trixie): - Target architecture: x86_64 - Python version:

📅 Opened Oct 7, 2026💬 1 comment
Quality: 60/100Contribute

🐛 Describe the bug #1117 notes that HuberLoss::new returns Ok for a NaN delta, and #1155 adds a guard in refine.rs. The constructors in crates/kornia-algebra/src/optim/losses.rs still accept NaN from any other caller: the check is delta <= 0.0 (scale <= 0.0 for Cauchy), which is false for NaN, so the loss is built and every weight() / rho() call returns NaN. 🔄 Steps to Reproduce 1. Add the two tests below to the `tests` module of `crates/kornia-algebra/src/optim/losses.rs` 2. Run `cargo test -p kornia-algebra nan` 3. Both tests fail 💻 Minimal Code Example #[test] fn test_huber_loss_nan_delta_error() { assert!(HuberLoss::new(f32::NAN).is_err()); } #[test] fn test_cauchy_loss_nan_scale_error() { assert!(CauchyLoss::new(f32::NAN).is_err()); } ✅ Expected behavior HuberLoss::new(f32::NAN) and CauchyLoss::new(f32::NAN) return Err, like new(0.0) and new(-1.0) already do. ❌ Actual behavior Both return Ok, so both tests fail: assertion failed: HuberLoss::new(f32::NAN).is_e

📅 Opened Oct 7, 2026💬 3 comments
Quality: 60/100Contribute
Looking for more Rust beginner tasks?Explore Rust GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for kornia/kornia-rs

When evaluating whether to contribute to kornia/kornia-rs, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of kornia/kornia-rs acknowledge new external contributions in approximately 1 days+. Out of all submitted pull requests from non-core authors in the last 180-day window, 74.2% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to kornia/kornia-rs

01

Is kornia/kornia-rs welcoming to first-time open-source contributors?

kornia/kornia-rs has a recorded first-timer success rate of 75.0%. Repositories ranked Elite typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~1 days+. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 73.1 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 73.1 places kornia/kornia-rs in the Elite tier.

04

What is the external contributor pull request merge rate for kornia/kornia-rs?

The external pull request merge rate is 74.2%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in kornia/kornia-rs?

Yes, kornia/kornia-rs currently has 49 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for kornia/kornia-rs are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.