Collidoscope — glyph collision detection
Shaped-text overlap testing (marks + faraway bases) at designspace corners wght 100/800 × slnt 0/−10 · ← all reports
Generated against Buena Mono v1.228 · last updated 2026-07-22
Thin (no collisions)
✓ clean
ExtraBold (5 colliding strings)
ĩ̀ j̃ ị̃Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15222ef90>, path2=<kurbopy.BezPath object at 0x15223aad0>, point=<Point x=391.0 y=489.00493958412846>), Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15222ef90>, path2=<kurbopy.BezPath object at 0x15223aad0>, point=<Point x=384.8428910773535 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223a5d0>, path2=<kurbopy.BezPath object at 0x15223af10>, point=<Point x=1726.2573991245865 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223a5d0>, path2=<kurbopy.BezPath object at 0x15223af10>, point=<Point x=1614.920464292763 y=556.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x15223e090>, path2=<kurbopy.BezPath object at 0x15223e2b0>, point=<Point x=2883.619170932636 y=-32.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x15223e090>, path2=<kurbopy.BezPath object at 0x15223e2b0>, point=<Point x=2674.2306317765647 y=-32.0>)
ḭ̃ ṵ̃Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223af50>, path2=<kurbopy.BezPath object at 0x15223e290>, point=<Point x=396.90255870148195 y=731.0>), Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223af50>, path2=<kurbopy.BezPath object at 0x15223e290>, point=<Point x=400.0 y=695.9932845672673>), Collision(glyph1='uni1E75', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223e1b0>, path2=<kurbopy.BezPath object at 0x15223e450>, point=<Point x=1639.0 y=518.8078632068657>), Collision(glyph1='uni1E75', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223e1b0>, path2=<kurbopy.BezPath object at 0x15223e450>, point=<Point x=1737.3790147087848 y=556.0>)
ɔ̃ɛ̃ãCollision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223ae70>, path2=<kurbopy.BezPath object at 0x15223e6f0>, point=<Point x=328.4682810061784 y=566.0>), Collision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223ae70>, path2=<kurbopy.BezPath object at 0x15223e6f0>, point=<Point x=418.9522234019498 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223e650>, path2=<kurbopy.BezPath object at 0x15223eab0>, point=<Point x=979.0215060900266 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x15223e650>, path2=<kurbopy.BezPath object at 0x15223eab0>, point=<Point x=1038.4286762210895 y=562.0934760084103>)
ŋ̊ɲ̊Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x15223ec50>, path2=<kurbopy.BezPath object at 0x15223ed70>, point=<Point x=270.28340606197185 y=557.1845246969142>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x15223ec50>, path2=<kurbopy.BezPath object at 0x15223ed70>, point=<Point x=381.4257443032977 y=568.4170569875729>), Collision(glyph1='uni0272', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x15223e6b0>, path2=<kurbopy.BezPath object at 0x15223ef50>, point=<Point x=900.6880410320192 y=549.7358127575468>), Collision(glyph1='uni0272', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x15223e6b0>, path2=<kurbopy.BezPath object at 0x15223ef50>, point=<Point x=1004.1881725661963 y=566.0>)
ɖ̤ɗ̥Collision(glyph1='uni0257', glyph2='uni0325', path1=<kurbopy.BezPath object at 0x1522430b0>, path2=<kurbopy.BezPath object at 0x152243290>, point=<Point x=893.918405518144 y=-42.0>), Collision(glyph1='uni0257', glyph2='uni0325', path1=<kurbopy.BezPath object at 0x1522430b0>, path2=<kurbopy.BezPath object at 0x152243290>, point=<Point x=944.0815944818559 y=-42.0>)
Thin Italic (no collisions)
✓ clean
ExtraBold Italic (4 colliding strings)
ĩ̀ j̃ ị̃Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1522e4f90>, path2=<kurbopy.BezPath object at 0x152121a50>, point=<Point x=425.6396420813707 y=556.0>), Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1522e4f90>, path2=<kurbopy.BezPath object at 0x152121a50>, point=<Point x=342.94211397739446 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x152121db0>, path2=<kurbopy.BezPath object at 0x152121eb0>, point=<Point x=1739.0122075386262 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x152121db0>, path2=<kurbopy.BezPath object at 0x152121eb0>, point=<Point x=1648.474852611337 y=556.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x1521230b0>, path2=<kurbopy.BezPath object at 0x1521232d0>, point=<Point x=2552.1545657157953 y=-32.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x1521230b0>, path2=<kurbopy.BezPath object at 0x1521232d0>, point=<Point x=2798.690838373314 y=-32.0>)
ḭ̃ ṵ̃Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x152121ed0>, path2=<kurbopy.BezPath object at 0x1521232b0>, point=<Point x=348.1530260281597 y=667.4677238792209>), Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x152121ed0>, path2=<kurbopy.BezPath object at 0x1521232b0>, point=<Point x=451.7538430956963 y=731.0>)
ɔ̃ɛ̃ãCollision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1522e4f90>, path2=<kurbopy.BezPath object at 0x152123810>, point=<Point x=266.23136242301126 y=566.0>), Collision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1522e4f90>, path2=<kurbopy.BezPath object at 0x152123810>, point=<Point x=458.99651992104646 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x152123670>, path2=<kurbopy.BezPath object at 0x152123b30>, point=<Point x=908.5326009893852 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x152123670>, path2=<kurbopy.BezPath object at 0x152123b30>, point=<Point x=983.1084043830361 y=566.0>)
ŋ̊ɲ̊Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x152123cd0>, path2=<kurbopy.BezPath object at 0x152123df0>, point=<Point x=194.94028358053288 y=556.0>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x152123cd0>, path2=<kurbopy.BezPath object at 0x152123df0>, point=<Point x=266.5762929844643 y=553.8814649223217>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x152123cd0>, path2=<kurbopy.BezPath object at 0x152123df0>, point=<Point x=303.25481477401485 y=551.3262461229868>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x152123cd0>, path2=<kurbopy.BezPath object at 0x152123df0>, point=<Point x=345.6225427526206 y=563.5206696223618>)