🚧 App in Alpha. Features subject to change/break without notice. Issue Tracker

Filters

Filter controls will go here

Add Issue Tracker AppAdone Implement Markdown SupportCto-do Dynamic Landing ModelCto-do Tree ShakingCto-do Source MappingBdoing Dynamic Desktop CSSCdoing Split Kireji App Drag-and-Drop HandlersCto-do Add Dynamic PartsCdoing Rework the Kireji URL FormatAto-do Refine Mesh Ray CastingCto-do Validate ModelToRouteID InputsCto-do Optimize Outliner SnapshotBto-do Post-Build ValidationBto-do Seamless Forward/Back NavigationAdoing Secure Against Cross-Site ScriptingAdoing Dynamic Task Bar Tray IconsAdoing Cross-Origin PWABdoing Console SupportCto-do Search Engine OptimizationAdoing Improve AccessabilityAto-do Mobile-Friendly Task MenuAto-do Feature Support FallbacksBto-do Full Desktop Window SupportBdoing Welcome AppBto-do Properties AppBto-do User-Managed Desktop IconsCto-do Part ExplorerBto-do Context MenuCto-do CLI InitalizationBto-do

Refine Mesh Ray Casting

Created: 1776205973 Priority: C Status: to-do Description: There are four potential improvements that can be used to refine mesh raycasting to improve edge sliding and potentially performance (if necessary). 1. When the angle of the line through the opposing neighbors appears exactly straight, consider searching in a wider radius for asymmetry in the mesh boundary. This can help prevent dead stops when the force vector is exactly perpendicular to a straight portion of a very gently angled edge. 2. Consider memoizing triangle neighbors and offering a NEIGHBORS_ONLY argument into the function that determines which triangle a given point falls on. This might improve raytracing performance but it might also introduce edge cases (for example, for meshes with tris that are very thin slivers). 3. For accurate "friction", we should reduce the speed of the vector-to-nearest-boundary-neighbor proportionally to how far that vector deviates from true force vector. 4. When the ray casting time limit does not provide enough time to make a full diagonal move, consider moving to one of the two 4-point neighbors that sits between the current ray position and the target diagonal neighbor. Affected Parts: mesh.abstract.parts Linked Issues: None