{"id":24015067,"url":"https://github.com/1337programming/lise-webassembly","last_synced_at":"2025-02-25T18:24:12.934Z","repository":{"id":66192071,"uuid":"108020791","full_name":"1337programming/LISE-WebAssembly","owner":"1337programming","description":"The LISE Game Engine for WebAssembly -- this is just a fun OpenGL project for WebAssembly development.","archived":false,"fork":false,"pushed_at":"2017-11-27T19:51:35.000Z","size":40555,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-08T07:42:48.665Z","etag":null,"topics":["embind","emscripten","opengl","wasm","webassembly"],"latest_commit_sha":null,"homepage":null,"language":"C++","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/1337programming.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":"2017-10-23T18:14:07.000Z","updated_at":"2018-01-17T19:30:06.000Z","dependencies_parsed_at":"2023-02-25T06:45:51.788Z","dependency_job_id":null,"html_url":"https://github.com/1337programming/LISE-WebAssembly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1337programming%2FLISE-WebAssembly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1337programming%2FLISE-WebAssembly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1337programming%2FLISE-WebAssembly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1337programming%2FLISE-WebAssembly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1337programming","download_url":"https://codeload.github.com/1337programming/LISE-WebAssembly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240720554,"owners_count":19846781,"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":["embind","emscripten","opengl","wasm","webassembly"],"created_at":"2025-01-08T07:38:51.839Z","updated_at":"2025-02-25T18:24:12.918Z","avatar_url":"https://github.com/1337programming.png","language":"C++","readme":"# LISE WebAssembly (Work In Progress)\r\n\r\nThe purpose of this project is to create a very basic minimal CMake project able to compile C++ program using emscripten with the following features enabled:\r\n* Linking to external C++ library crosscompiled to JS file\r\n* Using bindings created via Embind\r\n* Preloading assets files\r\n* Sample OpenGL stack to get going\r\n\r\n## Requirements\r\n\r\nSee the WebAssembly [setup](http://webassembly.org/getting-started/developers-guide/) to get all the requirements.\r\n\r\nWhat you will need\r\n\r\n* Python 2.7\r\n* C++ Compiler\r\n* CMake\r\n* Emscripten\r\n\r\n## Install\r\n\r\nStart by cloning this repository, making sure to pass the `--recursive` flag to grab all the dependencies. If you forgot, then you can git `submodule update --init` instead.\r\n\r\n### How to use\r\n1. Setup project `./setup.sh` - this will build and compile the libraries \r\n2. Build project `./build.sh` - this will build the project\r\n3. See output in `dist/index.html`\r\n\r\n**Note: there is no wasm loader at this time, see example output or modify output from `client.js` to `client.html`**\r\n\r\nYou can also view the example by unzipping `example.zip`.\r\n\r\n\r\n## Tech Stack\r\n\r\n\r\nFunctionality           | Library\r\n----------------------- | ------------------------------------------\r\nMesh Loading            | [assimp](https://github.com/assimp/assimp)\r\nPhysics                 | [bullet](https://github.com/bulletphysics/bullet3)\r\nOpenGL Function Loader  | [glad](https://github.com/Dav1dde/glad)\r\nWindowing and Input     | [glfw](https://github.com/glfw/glfw)\r\nOpenGL Mathematics      | [glm](https://github.com/g-truc/glm)\r\nTexture Loading         | [stb](https://github.com/nothings/stb)\r\n\r\n## TODO\r\n\r\n- [x] CMake Conversion \r\n- [x] Embind\r\n- [x] Passing Emscripten Arguments \r\n- [ ] Support uploading files\r\n- [x] Provide example WASM output\r\n- [x] WASM Output (requires loader file)\r\n- [x] Sample Vendor Compiling\r\n- [x] Sample Vendor Runtime \r\n- [x] Select OpenGL libraries\r\n- [x] Script to build LLVM libraries\r\n- [ ] Sample JavaScript Application\r\n- [ ] Convert bash scripts in CMake (I suck at CMake)\r\n- [ ] JavaScript Loader\r\n- [ ] Select Architecture\r\n- [ ] Document Architecture\r\n- [ ] C++ Unit Testing Setup with Google Test\r\n- [ ] Platform to support Web \u0026 Native\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1337programming%2Flise-webassembly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1337programming%2Flise-webassembly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1337programming%2Flise-webassembly/lists"}