{"id":26826429,"url":"https://github.com/terraspace/mshx","last_synced_at":"2025-10-07T02:47:40.646Z","repository":{"id":279271078,"uuid":"938268586","full_name":"Terraspace/mshx","owner":"Terraspace","description":"MSHX Tools","archived":false,"fork":false,"pushed_at":"2025-02-24T17:33:09.000Z","size":17940,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T18:29:20.456Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Terraspace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-24T17:25:39.000Z","updated_at":"2025-02-24T17:33:13.000Z","dependencies_parsed_at":"2025-02-24T18:40:55.296Z","dependency_job_id":null,"html_url":"https://github.com/Terraspace/mshx","commit_stats":null,"previous_names":["terraspace/mshx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terraspace%2Fmshx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terraspace%2Fmshx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terraspace%2Fmshx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terraspace%2Fmshx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Terraspace","download_url":"https://codeload.github.com/Terraspace/mshx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246308403,"owners_count":20756538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-30T11:19:24.088Z","updated_at":"2025-10-07T02:47:35.586Z","avatar_url":"https://github.com/Terraspace.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"**WaveFront OBJ to MSHX Converter Utility**\n\n**MSHX Format**\n\n    magic: char[4] ; 'MSHX'\n    version:       uint32       ; version of the MSHX file (currently 1)\n    vertexCount:   uint32\n    normalCount:   uint32\n    tangentCount:  uint32\n    uvCount:       uint32\n    faceCount:     uint32\n    materialCount: uint32\n    vertexType:    uint32       ; 0=xyz, 1=xyzargb\n    \n    boundingSphere: x,y,z,radius (float)\n    ; A close-to-optimal bounding sphere is generated for the mesh\n    \n    vertices[vertexCount]:\n    x,y,z,\u003ca,r,g,b\u003e (float,\u003cfloat\u003e) ; w assumed = 1.0, if no color data in OBJ file, \u003cARGB\u003e is omitted\n    \n    normals[normalCount]:\n    nx,ny,nz (float) ; w assumed = 0.0\n    ; *** Normals from an OBJ file are re-normalized on conversion\n    \n    tangents[tangentCount]:\n    tux,tuy,tuz (float) ; w assumed = 0.0 (tangent)\n    tvx,tvy,tvz (float) ; w assumed = 0.0 (bitangent)\n    \n    uvs[uvCount]:\n    u,v (float)\n    \n    faces[faceCount]:\n    edge-count (uint8)            ; [3=tri, 4=quad...]\n    v1,v2,v3,[v4]... (uint32)     ; index into above vertex buffer [mandatory]\n    n1,n2,n3,[n4]... (uint32)     ; index into above normal buffer [skipped if no normals above]\n    t1,t2,t3,[t4]... (uint32)     ; index into above tangent buffer [skipped if no tangets above]\n    uv1,uv2,uv3,[uv4]... (uint32) ; index into above uv buffer [skipped if no uvs above]\n    materialID (uint32)           ; mandatory = 0 if no materials\n    ; for a quad, the 4 vertices are tested to ensure they are coplanar and convex\n    ; face winding order is assumed to be correct in the source OBJ file\n    ; vertex/face reordering pre-pass in converter to optimize for vertex cache\n    ; *** source OBJ files must use absolute and not relative indices\n    ; *** OBJ files are assumed to only support triangle and quad, not higher order polyongs\n    \n    materials[materialCount]:\n    ambientColor (argb[] float32)      ; ambient colour\n    diffuseColor (argb[] float32)      ; diffuse colour\n    specularColor (argb[] float32)     ; specular colour\n    emissiveColor (argb[] float32)     ; emissive colour\n    transmissiveColor (argb[] float32) ; transmissive colour\n    specularPower (float32)            ; specular power\n    emissive (float32)\n    roughness (float32)                ; mix between diffuse and specular (fixed for an entire material) [0.0 - 1.0] [diffuse - specular] - used when no roughness map provided below.\n    metal (float32)                    ; [0.0 - 1.0] how reflective a material is / 0=nonmetal, 1=metal\n    mode (uint32)\n    sheen (float32)\n    clearcoat thickness (float32)\n    clearcore roughness (float32)\n    anisotropy (float32)\n    aniostropy rotation (float32)\n    texture map string length (uint32)\n    texture map name (byte[])\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraspace%2Fmshx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraspace%2Fmshx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraspace%2Fmshx/lists"}