Skip to content

Instantly share code, notes, and snippets.

Node 659: min=(0.22910696268081665,0.028774574398994446,0.281888484954834) max=(0.0,0.0,0.0) left=0 right=0 prim=0 extra=434f4c3360000000
Node 660: min=(9.184110135184851e-41,0.0,0.0) max=(0.0,0.0,0.0) left=1013 right=0 prim=813694976 extra=000080b27b21b53e
Node 661: min=(-0.2296200543642044,-0.028774574398994446,-0.28229379653930664) max=(0.0,0.2296200543642044,0.028774574398994446) left=1049659600 right=0 prim=0 extra=0000000000000000
Node 662: min=(0.0,0.0,4.7569539418645945e-08) max=(1.3452465257518244e-43,9.184110135184851e-41,0.0) left=0 right=0 prim=0 extra=00000000f6030000
Node 663: min=(0.0,-1.210719347000122e-08,0.0) max=(0.567714273929596,-0.40520960092544556,-0.030437808483839035) left=-1093957694 right=0 prim=1053783970 extra=aa58f93cc287cb3e
Node 664: min=(0.0,0.0,0.0) max=(0.0,0.0,0.0) left=860639043 right=96 prim=65540 extra=0000000000000000
Node 665: min=(0.0,0.0,0.0) max=(1.4223179412896893e-42,-4.470348358154297e-08,9.313225746154785e-10) left=0 right=1051713001
This file has been truncated, but you can view the full file.
43) left=413 right=-1 prim=-1 extra=ee010000ffffffff
Node 2016: min=(6.838336505905107e-43,6.1236742890994506e-43,nan) max=(6.221765181602188e-43,nan,nan) left=444 right=442 prim=443 extra=ffffffffbe010000
Node 2017: min=(nan,6.1096613044562024e-43,6.950440383051093e-43) max=(6.235778166245436e-43,nan,nan) left=-1 right=495 prim=404 extra=c30100009e010000
Node 2018: min=(nan,6.5300508437536476e-43,6.305843089461677e-43) max=(6.319856074104925e-43,nan,6.291830104818429e-43) left=450 right=-1 prim=448 extra=ffffffffd9010000
Node 2019: min=(6.824323521261859e-43,6.4459729358941585e-43,5.731310719088502e-43) max=(4.9605965637098524e-43,6.473998905180655e-43,5.717297734445254e-43) left=-1 right=357 prim=456 extra=ffffffffc7010000
Node 2020: min=(5.0446744715693415e-43,nan,nan) max=(nan,6.417946966607662e-43,6.403933981964414e-43) left=461 right=459 prim=458 extra=ffffffffffffffff
Node 2021: min=(6.58610278232664e-43,6.866362475191604e-43,6.347882043391421e-43) max=(6.417946966607662e-43,6.6
This file has been truncated, but you can view the full file.
Node 597: min=(-2.5655195568767474e+38,8.134808338689646e-36,-2.5655197597008434e+38) max=(2.9859490078559117e-36,-1.8478473839334248e+38,2.9506970916978903e-36) left=-16055233 right=71238705 prim=-16055173 extra=3f04310442040bff
Node 598: min=(1.1389085778924323e-37,-2.565678368143944e+38,1.1462555296889488e-37) max=(-2.56567857096804e+38,2.104327347908179e-36,-1.847847992405713e+38) left=70321203 right=-16055184 prim=69731440 extra=33040bff28047004
Node 599: min=(-1.8478565110177464e+38,2.774357513581052e-36,-1.847843124627408e+38) max=(2.9389389195980056e-36,-1.847842921803312e+38,1.9867884954319527e-36) left=-16055254 right=69796906 prim=-16055250 extra=2304210428040bff
Node 600: min=(1.9750204581908792e-36,-1.847843124627408e+38,1.8457173351638516e-36) max=(-1.8478417048587357e+38,8.135380158146192e-36,-2.56567857096804e+38) left=87622955 right=-12516052 prim=34603545 extra=18020bff0a020102
Node 601: min=(-1.847732585495068e+38,1.116778712024429e-37,-1.8477340052637403e+38) max=(7.899
,-187463476794515959115611573412962500608.00,0.00) left=-15923162 right=136513572 prim=-15923170 extra=25081e081f080dff
Node 3532: min=(0.00,-187463334817648733553918605782203498496.00,0.00) max=(-187463375382467940857259453676706070528.00,0.00,-187463355100058337205589029729454784512.00) left=136448027 right=-15923167 prim=136316953 extra=1f080dff1d081e08
Node 3533: min=(-187463395664877544508929877623957356544.00,0.00,-187463294252829526250577757887700926464.00) max=(0.00,-187463334817648733553918605782203498496.00,0.00) left=-15923172 right=135923745 prim=-15923173 extra=1e081d0818080dff
Node 3534: min=(0.00,-187463192840781507992225638151444496384.00,0.00) max=(-187463213123191111643896062098695782400.00,0.00,-187463273970419922598907333940449640448.00) left=135858194 right=-15923176 prim=135923731 extra=19080dff15081c08
Node 3535: min=(-187463233405600715295566486045947068416.00,0.00,-187463213123191111643896062098695782400.00) max=(0.00,-187463050863914282430532670520685494272.00,0.00) left=-1592318
COL3`   Õ |· 5 °µ~AþOíÀÆØšÀ4—À ¾Oí@ÈØš@(—@ COL3`   Ö  6 87 0µ!æÄA¸<¼Á•ëÀˆ7ÿ¿ ¼<¼A»•ë@|7ÿ? COL3`   × *-À…Æ-A ø¯>­óÞ>"–BÀž,A€XÝ< ¾Àl /A<
)? COL3`   Ø €v·@.½ ¸µɉ?ê-¿ðо"†H¿ þ-?ê~¤>ô…H? COL3ð   Ù œ~¼@…-¼‚c¾¦­@À"¿6;á¿ ‰g¿ à-?"…Þ?à×?  ¿7;á¿€ÙQ¿ €˜ü=ÉÀ¿ _+> 9 À"¿ÐÀ¿ ‰g¿ –ü=ÐÂÝ?€„¾ 9 "¿ý¼? ìQ¿ @Ø>ä„Þ? þ > 9  ^µ>"»à¿0cQ¿ ° ?"…Þ?°Ø? 9 COL3ð   Ú ‡
¼ ~©;"ö¾i®@>»à¿à-¿ðÒg¿ "…Þ?ØÓ?à×?  >»à¿Ø ¿ðÒg¿ >ý¼?ØÓ?@; 9 ³ºà¿ˆ ¿cQ¿ M{À¿ˆð?@”,> 9 "»à¿¨ ¿0cQ¿ "…Þ?°^µ¾°Ø? 9 ý¼?Ø ¿ ûQ¿ ä„Þ?ØÒ? +> 9 COL3`   Û  ¶ b÷öA$ØÁÚVÁÀLÔÀ $ØAÐVAÀLÔ@ COL3`
Python 3.14.0 (tags/v3.14.0:ebf955d, Oct 7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
... header_end = offset + 8 + file_size
... # Attempt to read AABB node count at end of block
... try:
... # Rough guess: AABB nodes usually at the end of the block
... search_offset = offset + 8 + file_size - 4 - 36*max_nodes
... if search_offset < 0: search_offset = offset + 8
... for i in range(max_nodes):
... node_offset = search_offset + i*36
Python 3.14.0 (tags/v3.14.0:ebf955d, Oct 7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
...
... # Sanity check: min should be less than max
... if min_x <= max_x and min_y <= max_y and min_z <= max_z:
... # Optional: ignore obvious garbage (e.g., huge coordinates)
... if all(-10000 < v < 10000 for v in (min_x, min_y, min_z, max_x, max_y, max_z)):
... found_nodes.append({
... "offset": offset,
... "min": (min_x, min_y, min_z),
Python 3.14.0 (tags/v3.14.0:ebf955d, Oct 7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
...
... # --- AABB Tree Nodes ---
... # For simplicity, read until next object or EOF
... # Each node: min(3f), max(3f), left(int), right(int), prim(int) = 36 bytes
... # We'll read until we hit the next object or EOF
... while True:
... node_data = f.read(36)
... if len(node_data) < 36:
Python 3.14.0 (tags/v3.14.0:ebf955d, Oct 7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
... "num_aabb_groups": len(groups),
... "num_headers": len(headers),
... "header_offsets": [h["offset"] for h in headers],
... }
...
... with open(output_meta, "w", encoding="utf-8") as f:
... json.dump(meta, f, indent=2)
...
[
{
"offset": 0,
"min": [
4.7569539418645945e-08,
1.3452465257518244e-43,
9.184110135184851e-41
],
"max": [
0.0,