BOT_CHECK(nged)
Test a BoT to determine if it satisfies validity criteria.
π¦ bot_check β the vibe check your mesh has been waiting for π¦
okay bestie, so this is a nged command (that's the BRL-CAD User Commands family, hi π), and it's literally the mesh therapist you call when you're like "is my BoT even valid or am I living a lie?"
β¨ NAME β¨
bot_check β gives a BoT (that's a triangle-based mesh, iykyk) a full test to see if it satisfies the validity criteria. it's giving glow-up-or-flop π
πΈ SYNOPSIS πΈ
bot check [degen_faces] [extra_edges] [flipped_edges] [manifold] [open_edges] [solid] {input_bot}
note the space between bot and check β it's bot check, not bot_check, so don't come for me π«Ά
π DESCRIPTION π
okay so here's the situation. one of the more common problems a modeler faces when working with triangle based mesh geometry is whether or not the triangles actually form a closed volume in space β like, do they properly define an inside and an outside, with no holes or gaps? π³οΈ
and this question is more involved than it might seem at first glance. even if individual triangles are positioned correctly in space, the definitions of the mesh topology may not properly tie them together to form a closed mesh. it's giving "everything's fine on the surface but the structure is a mess" π
to help recognize when this is happening, the bot check provides users with a variety of routines to look for problems. by default, all checks are applied (the solid test). if a 1 is returned, all tests passed and the mesh is a valid solid, defining an inside and an outside. otherwise, a 0 is returned to indicate failure. no in-between, no "it's complicated" β just 1 or 0, main character binary energy π
if more specific information is needed, subcommands can be added to individually run specific checks, returning the same 1 and 0 results as the full solidity test. so you can be nosy about exactly which test is mad at you π
π SPECIFIC TEST SUBCOMMANDS π
one bullet per subcommand, all facts intact, let's gooo:
degen_facesβ look for faces that have zero surface area (for example, if a triangle is specified using the same point for both vertices on one of the edges). degenerate faces are so not slaying πextra_edgesβ look for an edge that is not part of a triangle, or duplicates an already defined edge. like why are you even here bestie πflipped_edgesβ look for an edge that is ordered incorrectly for its local context. yes it's a thing, yes it matters πmanifoldβ report if the Manifold library considers the mesh to define a proper manifold. letting the library have the final say, iconic πopen_edgesβ look for unmated edges, which should not exist in a proper manifold mesh. gaps in the group chat, unacceptable πΈsolidβ run all of the checks, passing only if each individual check is successful. the full package, no skipping, periodt β¨
β EXAMPLES β
Example 1. Basic example
mged>bot check input.bot
run all checks on input.bot. returns "1" if successful, and "0" if a problem was found. zero notes, we love to see it π«Ά
Example 2. Specific test
mged>bot check open_edges input.bot
run just the open_edges test on input.bot, reporting "1" if everything looks valid and "0" if one or more open edges are found. targeted interrogation, obsessed π₯
π AUTHOR π
BRL-CAD Team β legends, fr fr π
π BUG REPORTS π
reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org. if something's broken, tell the devs, don't suffer in silence bestie π
quick reminder that1= valid solid with a real inside and outside, and0= failure. that's the whole vibe check in one number π
and that's the page! brought to you by BRL-CAD, BRL-CAD User Commands edition β see you in the group chat πβ¨ππ¦
π¦ where this page comes from
- nixpkgs unstable: brlcad 7.44.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms