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.235 · last updated 2026-09-25

9
colliding strings
39
test strings
4
corners tested

Thin (no collisions)

✓ clean

ExtraBold (5 colliding strings)

ĩ̀ j̃ ị̃Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139807f50>, path2=<kurbopy.BezPath object at 0x139800a90>, point=<Point x=391.0 y=489.00493958412846>), Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139807f50>, path2=<kurbopy.BezPath object at 0x139800a90>, point=<Point x=384.8428910773535 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801210>, path2=<kurbopy.BezPath object at 0x139801850>, point=<Point x=1726.2573991245865 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801210>, path2=<kurbopy.BezPath object at 0x139801850>, point=<Point x=1614.920464292763 y=556.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x139801830>, path2=<kurbopy.BezPath object at 0x1398013b0>, point=<Point x=2883.619170932636 y=-32.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x139801830>, path2=<kurbopy.BezPath object at 0x1398013b0>, point=<Point x=2674.2306317765647 y=-32.0>)
ḭ̃ ṵ̃Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801470>, path2=<kurbopy.BezPath object at 0x1398019d0>, point=<Point x=396.90255870148195 y=731.0>), Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801470>, path2=<kurbopy.BezPath object at 0x1398019d0>, point=<Point x=400.0 y=695.9932845672673>), Collision(glyph1='uni1E75', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801a10>, path2=<kurbopy.BezPath object at 0x139801bd0>, point=<Point x=1639.0 y=518.8078632068657>), Collision(glyph1='uni1E75', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801a10>, path2=<kurbopy.BezPath object at 0x139801bd0>, point=<Point x=1737.3790147087848 y=556.0>)
ɔ̃ɛ̃ãCollision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801470>, path2=<kurbopy.BezPath object at 0x139801e30>, point=<Point x=328.4682810061784 y=566.0>), Collision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801470>, path2=<kurbopy.BezPath object at 0x139801e30>, point=<Point x=418.9522234019498 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801e70>, path2=<kurbopy.BezPath object at 0x139800730>, point=<Point x=979.0215060900266 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x139801e70>, path2=<kurbopy.BezPath object at 0x139800730>, point=<Point x=1038.4286762210895 y=562.0934760084103>)
ŋ̊ɲ̊Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x1398023b0>, path2=<kurbopy.BezPath object at 0x1398024b0>, point=<Point x=270.28340606197185 y=557.1845246969142>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x1398023b0>, path2=<kurbopy.BezPath object at 0x1398024b0>, point=<Point x=381.4257443032977 y=568.4170569875729>), Collision(glyph1='uni0272', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x139802650>, path2=<kurbopy.BezPath object at 0x139802750>, point=<Point x=900.6880410320192 y=549.7358127575468>), Collision(glyph1='uni0272', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x139802650>, path2=<kurbopy.BezPath object at 0x139802750>, point=<Point x=1004.1881725661963 y=566.0>)
ɖ̤ɗ̥Collision(glyph1='uni0257', glyph2='uni0325', path1=<kurbopy.BezPath object at 0x139802870>, path2=<kurbopy.BezPath object at 0x139802a10>, point=<Point x=893.918405518144 y=-42.0>), Collision(glyph1='uni0257', glyph2='uni0325', path1=<kurbopy.BezPath object at 0x139802870>, path2=<kurbopy.BezPath object at 0x139802a10>, 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 0x1397f4bb0>, path2=<kurbopy.BezPath object at 0x1397ff750>, point=<Point x=425.6396420813707 y=556.0>), Collision(glyph1='dotlessi', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397f4bb0>, path2=<kurbopy.BezPath object at 0x1397ff750>, point=<Point x=342.94211397739446 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fefd0>, path2=<kurbopy.BezPath object at 0x1397fe990>, point=<Point x=1739.0122075386262 y=556.0>), Collision(glyph1='uni0237', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fefd0>, path2=<kurbopy.BezPath object at 0x1397fe990>, point=<Point x=1648.474852611337 y=556.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x1397fe970>, path2=<kurbopy.BezPath object at 0x1397fedf0>, point=<Point x=2552.1545657157953 y=-32.0>), Collision(glyph1='dotlessi', glyph2='uni0323', path1=<kurbopy.BezPath object at 0x1397fe970>, path2=<kurbopy.BezPath object at 0x1397fedf0>, point=<Point x=2798.690838373314 y=-32.0>)
ḭ̃ ṵ̃Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fed30>, path2=<kurbopy.BezPath object at 0x1397fe810>, point=<Point x=348.1530260281597 y=667.4677238792209>), Collision(glyph1='uni1E2D', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fed30>, path2=<kurbopy.BezPath object at 0x1397fe810>, point=<Point x=451.7538430956963 y=731.0>)
ɔ̃ɛ̃ãCollision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fed30>, path2=<kurbopy.BezPath object at 0x1397fe370>, point=<Point x=266.23136242301126 y=566.0>), Collision(glyph1='uni0254', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fed30>, path2=<kurbopy.BezPath object at 0x1397fe370>, point=<Point x=458.99651992104646 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fe330>, path2=<kurbopy.BezPath object at 0x1397ffa90>, point=<Point x=908.5326009893852 y=566.0>), Collision(glyph1='uni025B', glyph2='uni0303', path1=<kurbopy.BezPath object at 0x1397fe330>, path2=<kurbopy.BezPath object at 0x1397ffa90>, point=<Point x=983.1084043830361 y=566.0>)
ŋ̊ɲ̊Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x1397fddf0>, path2=<kurbopy.BezPath object at 0x1397fdcf0>, point=<Point x=194.94028358053288 y=556.0>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x1397fddf0>, path2=<kurbopy.BezPath object at 0x1397fdcf0>, point=<Point x=266.5762929844643 y=553.8814649223217>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x1397fddf0>, path2=<kurbopy.BezPath object at 0x1397fdcf0>, point=<Point x=303.25481477401485 y=551.3262461229868>), Collision(glyph1='uni014B', glyph2='uni030A', path1=<kurbopy.BezPath object at 0x1397fddf0>, path2=<kurbopy.BezPath object at 0x1397fdcf0>, point=<Point x=345.6225427526206 y=563.5206696223618>)