{"id":19763910,"url":"https://github.com/glvis/glvis-js","last_synced_at":"2025-10-13T18:32:03.597Z","repository":{"id":47427737,"uuid":"144902040","full_name":"GLVis/glvis-js","owner":"GLVis","description":"JavaScript/WebAssembly GLVis Library","archived":false,"fork":false,"pushed_at":"2025-05-30T22:42:46.000Z","size":186,"stargazers_count":19,"open_issues_count":5,"forks_count":4,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-08-09T07:16:19.968Z","etag":null,"topics":["emscripten","finite-elements","glvis","javascript","visualization","webassembly","webgl"],"latest_commit_sha":null,"homepage":"http://glvis.org/live","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GLVis.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,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-08-15T20:49:47.000Z","updated_at":"2025-06-02T02:35:15.000Z","dependencies_parsed_at":"2025-04-30T14:42:51.951Z","dependency_job_id":"2978a86b-cd3d-4d82-9a4a-8d37c2324131","html_url":"https://github.com/GLVis/glvis-js","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/GLVis/glvis-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GLVis%2Fglvis-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GLVis%2Fglvis-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GLVis%2Fglvis-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GLVis%2Fglvis-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GLVis","download_url":"https://codeload.github.com/GLVis/glvis-js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GLVis%2Fglvis-js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016590,"owners_count":26085852,"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-13T02:00:06.723Z","response_time":61,"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":["emscripten","finite-elements","glvis","javascript","visualization","webassembly","webgl"],"created_at":"2024-11-12T04:11:38.541Z","updated_at":"2025-10-13T18:32:03.570Z","avatar_url":"https://github.com/GLVis.png","language":"HTML","readme":"# GLVis JavaScript Library\n\nUsing [Emscripten](https://emscripten.org/index.html) GLVis can be built as a JavaScript \u0026 WebAssembly library.\n\nA fully-featured web version of GLVis is available at https://glvis.org/live with documentation in [live/README.md](live/README.md).\n\n## Using a pre-built version of the _glvis.js_ library\n\nA pre-built JavaScript library is included at _src/glvis.js_, but because of its size it\nis stored using Git's Large File Storage, [git-lfs](https://git-lfs.github.com/).\n\nTo use the pre-built library, e.g. with the examples in the `examples/` directory, or with the web version\nin the `live/` directory, you need first to enable `git-lfs` on your system, see the instructions on the\n[git-lfs page](https://git-lfs.github.com/).\n\nFor example, a simple run with the pre-built library can be executed on a Mac from scratch with:\n\n```\nbrew install git-lfs\ngit lfs install\ngit clone git@github.com:GLVis/glvis-js.git\ncd glvis-js/examples\nopen basic.html\n```\n\n## Building _glvis.js_\n\n1. Install [Emscripten](https://emscripten.org/docs/getting_started/downloads.html)\n\n   ```\n   [git clone https://github.com/emscripten-core/emsdk.git]\n   cd emsdk\n   git pull\n   ./emsdk install latest\n   ./emsdk activate latest\n   source \"/path/to/emsdk/emsdk_env.sh\"\n   ```\n\n2. Get copies of glvis and mfem\n\n   ```\n   git clone git@github.com:mfem/mfem.git\n   git clone git@github.com:GLVis/glvis.git\n   ```\n\n3. Clone included submodules\n\n    ```\n    git clone --recurse-submodules git@github.com:GLVis/glvis-js.git\n    ```\n\n   If you've already cloned you can pull submodules with:\n\n   ```\n   git submodule update --init --recursive\n   ```\n\n4. Build:\n\n   ```\n   make realclean # or just clean if you don't want to rebuild mfem\n   make install -j\n   ```\n\n5. Patch glvis.js (temporary):\n\n   Edit src/glvis.js and add `return 0;` to the top of `_JSEvents_requestFullscreen` (see Known\n   Issues)\n\n\nNOTE: Emscripten handles SDL2 and GLEW but if you have another installation in your path the link\nmight fail.\n\n\n## Serving to a device on your local network\n\nThe `serve` make target allows you to serve your local glvis-js to other devices on your\nnetwork.\n\nFor example, on a Mac:\n\n1. First, get `your IP address`:\n\n   ```shell\n   ipconfig getifaddr en0\n   ```\n\n   or alternatively your `hostname`:\n\n   ```shell\n   hostname -s\n   ````\n\n2. Then, serve `glvis-js` to all devices in your local network:\n\n   ```shell\n   make serve\n   ```\n\n3. Any device in your network can now connect to `{your IP address}:8000` or `{hostname}:8000` to use the local version of `glvis-js`. On the local host, you can also use `localhost:8000`.\n\n\n## Contributing\n\nPlease run `make style` before pushing your changes. `make style` uses\n[`prettier`](https://prettier.io) and requires that you have\n[`npx`](https://www.npmjs.com/package/npx) in your path. `prettier` will\nbe installed for you when running `make style` if you don't already have it.\n\n### Updating _glvis.js_\n\n1. Use `make install` to build and install a new `glvis.js` and `versions.js` to *src/*\n\n2. Please add the output of `make versions` to the commit body.\n\n\n## Releasing\n\n1. Update the version: `npm version \u003cupdate_type\u003e`\n   - `\u003cupdate_type\u003e` is one of `patch`, `minor`, or `major`\n\n2. `npm login`\n\n3. `npm publish`\n\nMore info [here](https://docs.npmjs.com/updating-your-published-package-version-number).\n\n\n## Known issues and limitations\n\n- Opening new examples results in memory growth\n\n- Lots of console warnings\n\n\n## TODO\n- Multiple output windows\n   - MFEM stream with multiple fields causes the visualizations to write over each other\n- Improve the I/O e.g. corresponding to key `F6`\n- Improve experience on mobile devices with touch interfaces\n- Allow for screenshots/printing with `S`/`Ctr-P`, see https://github.com/GLVis/pyglvis/issues/5\n- Provide easier ways to generate `*.saved` files\n- Support Binary streams\n- Browser differences\n  - Fullscreen in Safari\n  - Help menu overflow in Safari and Firefox\n- Secure websockets\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglvis%2Fglvis-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglvis%2Fglvis-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglvis%2Fglvis-js/lists"}