{"id":40882476,"url":"https://github.com/bertt/b3dm.tooling","last_synced_at":"2026-01-22T01:16:47.731Z","repository":{"id":46332595,"uuid":"187040721","full_name":"bertt/b3dm.tooling","owner":"bertt","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-29T15:37:33.000Z","size":1153,"stargazers_count":26,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-09T05:24:31.158Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bertt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-05-16T14:09:30.000Z","updated_at":"2025-07-30T05:29:24.000Z","dependencies_parsed_at":"2024-04-18T04:37:18.655Z","dependency_job_id":"26e9b3e7-1f01-44bd-9b43-b007c982e064","html_url":"https://github.com/bertt/b3dm.tooling","commit_stats":{"total_commits":49,"total_committers":2,"mean_commits":24.5,"dds":"0.20408163265306123","last_synced_commit":"642752c9614ac2c29ef1842c107612910bc27dae"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bertt/b3dm.tooling","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertt%2Fb3dm.tooling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertt%2Fb3dm.tooling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertt%2Fb3dm.tooling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertt%2Fb3dm.tooling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bertt","download_url":"https://codeload.github.com/bertt/b3dm.tooling/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertt%2Fb3dm.tooling/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28648639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-22T01:16:46.355Z","updated_at":"2026-01-22T01:16:47.726Z","avatar_url":"https://github.com/bertt.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# b3dm.tooling\n\nGlobal tooling for handling 3D Tiles b3dm files. \n\nSupports operations like:\n\n- getting information about the b3dm (info);\n\n- unpacking from b3dm to glb (unpack);\n\n- creating b3dm from glb file (pack).\n\n## API\n\nVerbs:\n\n```\n  pack       pack b3dm\n\n  unpack     unpack b3dm\n\n  info       info b3dm\n\n  help       Display more information on a specific command.\n\n  version    Display version information.\n```\n\nInfo options:\n\n```\n  -i, --input    Required. Input path of the .b3dm\n```\n\nPack options:\n\n```\n  -i, --input     Required. Input path of the glb file\n\n  -o, --output    (Default: ) Output path of the resulting .b3dm\n\n  -f, --force     (Default: false) force overwrite output file\n```\n\nBatch information is retrieved from files .batchtable.json and .featuretable.json when present.\n\n\nUnpack options:\n\n```\n  -i, --input     Required. Input path of the .b3dm\n\n  -o, --output    (Default: ) Output path of the resulting .glb\n\n  -f, --force     (Default: false) force overwrite output file\n```\n\nBatch information is saved in files .batchtable.json and .featuretable.json when present.\n\n## Installation\n\nRequirement: Install .NET SDK 8.0 https://dotnet.microsoft.com/download\n\n- Install from NuGet\n\nhttps://www.nuget.org/packages/b3dm.tooling/\n\n```\n$ dotnet tool install -g b3dm.tooling\n```\n\nor update:\n\n```\n$ dotnet tool update -g b3dm.tooling\n\n```\n\n## Running\n\n1] Command Info b3dm_file gives header info about b3dm file and glTF in the payload\n\nExample:\n\n```\n$ b3dm info -i test.b3dm\n\nb3dm header version: 1\nb3dm header magic: b3dm\nb3dm header bytelength: 69658\nb3dm header featuretablejson length: 20\nb3dm header batchtablejson length: 521\nBatch table json: {\"hoehe\":[\"17.386000000000024\",\"18.34499999999997\",\"18.58699999999999\",\"21.860000000000014\",\"10.168000000000006\",\"20.584000000000003\",\"19.70599999999996\",\"19.817000000000007\",\"20.000999999999976\",\"16.577999999999975\",\"17.865999999999985\",\"17.745000000000005\"],\"citygml_class\":[\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\",\"BB01\"],\"surfaceType\":[\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\",\"roof\"],\"Region\":[\"5\",\"5\",\"5\",\"5\",\"5\",\"5\",\"5\",\"5\",\"5\",\"5\",\"5\",\"5\"]}\nFeature table json: {\"BATCH_LENGTH\":12}\nglTF model is loaded\nValidation check: no errors\nglTF model is loaded\nglTF generator: Khronos glTF Blender I/O v1.2.75\nglTF version:2.0\nglTF primitives: 1\nglTF triangles: 722\nBounding box vertices: -0.2226839, 0.2226839, 0, 0.56007576, -0.26161957, 0.26161957\n```\n\n2] Command unpack -i b3dm_filename \n\nunpacks a b3dm file to GLB format and creates {name}.batchtable.json and {name}.featuretable.json files when containing \nbatchTableJson information\n\nExample:\n\n```\n$ b3dm unpack -i 1.b3dm\nAction: Unpack\nInput: 1.b3dm\nb3dm version: 1\nglTF asset generator: py3dtiles\nglTF version: 2.0\nBuffer bytes: 167832\nGlb created: 1.glb\nBatchTable json file created: 1.batchtable.json\nFeatureTable json file created: 1.featuretable.json\n```\n\nSample file 1.batchtable.json:\n\n```\n{\"id\":[\"10103\",\"800\",\"2117\",\"2497\",\"11214\",\"7076\",\"4140\",\"9584\",\"784\",\"9294\",\"9295\",\"7075\",\"7078\",\"20240\",\"2116\",\"7077\",\"13523\",\"6131\",\"11300\",\"13466\",\"12805\",\"7074\",\"4411\",\"7079\",\"6443\",\"2786\",\"7073\",\"7072\",\"1200\",\"11281\",\"2115\"]}\n```\n\nSample file 1.featuretable.json:\n\n```\n{\"BATCH_LENGTH\":31}\n```\n\n3] Command pack -i glb_filename to pack a glb to b3dm file and importing batchTableJson when .batch file exists.\n\nExample:\n\n```\n$ b3dm pack -i 1.glb\n\nAction: Pack\nInput: 1.b3dm\nInput batch file: 1.batchtable.json\nB3dm created 1.b3dm\n```\n\n## Building from source\n\n```\n$ cd b3dm-tile-cs\\b3dm.tooling\n$ dotnet pack\n$ dotnet tool install --global --add-source ./nupkg b3dm.tooling\n```\n\nor update:\n\n```\n$ dotnet tool update --global --add-source ./nupkg b3dm.tooling\n```\n\n## History\n\n2024-10-29: release 1.1 - from .NET 6.0 to .NET 8.0\n\n2024-01-25: release 1.0.5 - bug fix reading glb from b3dm with trailing padding\n\n2023-02-16: release 1.0.3, 1.0.4 - bug fix reading fglb from b3dm with trailing padding\n\n2023-02-16: release 1.0.1, 1.0.2 - bug fix for option pack with remote file\n\n2022-12-08: release 1.0 - upgrading to .NET 6\n\n2020-09-16: simplify unpack - release 0.20\n\n2020-08-21: adding reading/writing batch information to/from .batchtable.json and .featuretable.json\n\n2020-08-19: added support for reading glTF with KHR_mesh_quantization. \nA custom build of SharpGltf on myget is used for now: https://www.myget.org/feed/bertt/package/nuget/SharpGLTF.Toolkit/1.0.0-Preview-20200819-1221\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertt%2Fb3dm.tooling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbertt%2Fb3dm.tooling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertt%2Fb3dm.tooling/lists"}