{"id":22243344,"url":"https://github.com/galaco/lambda-core","last_synced_at":"2025-10-04T21:39:03.127Z","repository":{"id":45542987,"uuid":"144383014","full_name":"Galaco/lambda-core","owner":"Galaco","description":"Set of core utilities for Source Engine tool development, written in Go","archived":false,"fork":false,"pushed_at":"2025-07-07T05:26:56.000Z","size":8030,"stargazers_count":14,"open_issues_count":13,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-28T01:39:45.136Z","etag":null,"topics":["bsp","game","game-engine","go","source-engine","valve"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Galaco.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,"zenodo":null}},"created_at":"2018-08-11T12:21:38.000Z","updated_at":"2024-03-29T05:56:25.000Z","dependencies_parsed_at":"2023-12-13T16:09:48.918Z","dependency_job_id":"4fbbef1c-ad9d-45ef-b78b-ec316a04f636","html_url":"https://github.com/Galaco/lambda-core","commit_stats":null,"previous_names":["galaco/gource-engine"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/Galaco/lambda-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galaco%2Flambda-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galaco%2Flambda-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galaco%2Flambda-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galaco%2Flambda-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Galaco","download_url":"https://codeload.github.com/Galaco/lambda-core/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Galaco%2Flambda-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278380479,"owners_count":25977216,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bsp","game","game-engine","go","source-engine","valve"],"created_at":"2024-12-03T04:26:02.393Z","updated_at":"2025-10-04T21:39:03.082Z","avatar_url":"https://github.com/Galaco.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GoDoc](https://godoc.org/github.com/galaco/lambda-core?status.svg)](https://godoc.org/github.com/galaco/lambda-core)\n[![Go report card](https://goreportcard.com/badge/github.com/galaco/lambda-core)](https://goreportcard.com/badge/github.com/galaco/lambda-core)\n[![GolangCI](https://golangci.com/badges/github.com/galaco/lambda-core.svg)](https://golangci.com)\n[![codecov](https://codecov.io/gh/Galaco/lambda-core/branch/master/graph/badge.svg)](https://codecov.io/gh/Galaco/lambda-core)\n[![CircleCI](https://circleci.com/gh/Galaco/lambda-core.svg?style=svg)](https://circleci.com/gh/Galaco/lambda-core)\n\n# Lambda Core\nLambda Core provides a semi-comprehensive set of tools to build practically any Source Engine tool from. Any module can be used \nin isolation, but its recommended to utilise at least the FileSystem and ResourceManager modules if any loader is used.\n\n##### See [https://github.com/galaco/Lambda-Client](https://github.com/galaco/Lambda-Client) for a working BSP renderer built on top of this library.\n\n### Current features\n* GameInfo.txt parser for existing games\n* Full filesystem loader and searcher for all GameInfo defined paths, including pakfile and vpks\n* Vmt and Vtf parsing\n* Basic .mdl parsing (useable, incomplete)\n* Full bsp loading utilities\n\n## Contributing\nThere is loads to do! Right now there are a few core issues that need fixing, and loads of fundamental features to add. Here\nare just a few!\n* StudioModel library needs finishing before props can be properly added. There are some issues around multiple stripgroups per mesh, multiple\nmaterials per prop, mdl data not fully loaded, and likely more\n* Implement physics (probably bullet physics? Accurate VPhysics is probably not worthwhile, but needs investigation)\n* Displacement support incomplete - generation is buggy, and visibility checks cull displacements always (visible when outside of world only)\n* Additional game support/testing in BSP library\n\n\n\n#### Some documentation\n\n##### Entity\nProvides an interface, and generic implementation of a game entity, as well as\n3d transform struct and camera implementation.\n\n##### Event\nEvent provides a very simple emitter/subscriber manager to allow engine event \nprocessing. It can be used for handling internal engine events, or for game logic,\nalthough that isn't recommended.\n\n##### Filesystem\nSource Engine is a little annoying in that there are potentially unlimited possible\nlocations that engine resources can be located. Filesystem provides a way to register \nand organise any potential resource path or filesystem, while preserving filesystem type\nsearch priority.\n\n##### Loader\nLoader generates data structures for Source formats from file streams. Materials, textures,\nmeshes etc.\n\n##### Logger\nLogger is a simple module to abstract out different print() priorities, and (eventually) locations \nthan just stdout.\n\n##### Material \nMaterial provides a more GPU friendly vmt material implementation\n\n##### Mesh\nProvides a set of common data formats for vertex data in the bsp or compiled\n.mdl props.\n\n##### Model\nModels are combinations of simple data structures that represent a single higher \nlevel visual object. e.g. []Mesh is a studio model, []Face is bsp data etc.\n\n##### Resource\nResource provides a management struct for tracking what game resources have been \nloaded from the filesystem. When a map is loaded, all found materials, textures, models\nshould be added to the ResourceManager, so they can be loaded only once, and cleaned up\ncorrectly when no longer needed.\n\n##### Scene\nProvides a simple scene struct that contains bsp face and staticprop information\n\n##### Texture\nProvides a set of GPU friendly texture formats. For now OpenGL usage is enforced, but \nabstracting that out should be doable.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalaco%2Flambda-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalaco%2Flambda-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalaco%2Flambda-core/lists"}