{"id":15146686,"url":"https://github.com/danielesteban/blocks","last_synced_at":"2025-10-24T01:31:02.576Z","repository":{"id":38772742,"uuid":"266347529","full_name":"danielesteban/blocks","owner":"danielesteban","description":"webxr multiplayer voxels engine","archived":false,"fork":false,"pushed_at":"2022-08-17T15:41:27.000Z","size":6019,"stargazers_count":61,"open_issues_count":34,"forks_count":7,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-01-30T22:17:17.996Z","etag":null,"topics":["game-engine","nodejs","oculus","threejs","virtual-reality","voxels","webxr"],"latest_commit_sha":null,"homepage":"https://blocks.gatunes.com/","language":"JavaScript","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/danielesteban.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"danielesteban"}},"created_at":"2020-05-23T13:58:53.000Z","updated_at":"2024-11-23T05:48:37.000Z","dependencies_parsed_at":"2022-09-01T11:51:37.703Z","dependency_job_id":null,"html_url":"https://github.com/danielesteban/blocks","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/danielesteban%2Fblocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielesteban%2Fblocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielesteban%2Fblocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielesteban%2Fblocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielesteban","download_url":"https://codeload.github.com/danielesteban/blocks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237901410,"owners_count":19384384,"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":["game-engine","nodejs","oculus","threejs","virtual-reality","voxels","webxr"],"created_at":"2024-09-26T12:03:50.299Z","updated_at":"2025-10-24T01:30:55.133Z","avatar_url":"https://github.com/danielesteban.png","language":"JavaScript","funding_links":["https://github.com/sponsors/danielesteban"],"categories":[],"sub_categories":[],"readme":"[blocks](https://blocks.gatunes.com/)\n[![Build Status](https://travis-ci.org/danielesteban/blocks.svg?branch=master)](https://travis-ci.org/danielesteban/blocks)\n==\n\n[![screenshot](https://blocks.gatunes.com/auth/location/5efd37aaf8c03a265013d09b/photo)](https://blocks.gatunes.com/)\n\n#### Create your own server in two steps:\n\n * [Remix glitch.com/~blocks-server](https://glitch.com/edit/#!/remix/blocks-server)\n * Set this variables on the `.env` file:\n   * `NAME` the server name (for the public registry)\n   * `SEED` 16bit world generation seed. (0 - 65535)\n\n#### If you want to experiment with world generation:\n\n * [Remix glitch.com/~blocks-server-worldgen](https://glitch.com/edit/#!/remix/blocks-server-worldgen)\n * Set the variables on the `.env` file\n * Edit [worldgen.js](https://glitch.com/edit/#!/blocks-server-worldgen?path=worldgen.js)\n\n#### You can also use docker-compose if you already own a more powerful server:\n\n```yaml\nversion: '3'\nservices:\n  server:\n    image: danigatunes/blocks:latest\n    environment:\n     - NAME=Your Server Name\n     - PRELOAD=10\n     - PUBLIC_URL=https://yourserver.url/\n     - SEED=1234\n     - STORAGE=/data\n    ports:\n     - \"80:8080\"\n    volumes:\n     - \"data:/data\"\nvolumes:\n  data:\n```\n\n#### Want your server to show up on the in-game map?\n\nAt the moment, the main server list verification is kind of a manual process.\nI will check the list from time to time and manually approve them after checking they work correctly.\nI need to write better tools to streamline the process, but there's other priorities right now.\nIf you want to speed this up, you can always drop me a line on [twitter](https://twitter.com/danigatunes) with the url of your server.\n\n#### Server configuration\n\n * `CLIENT` serve the client (boolean, defaults to false)\n * `DESTINATIONS` serve the destinations web ui (boolean, defaults to false)\n * `GENERATOR` the world [generator](server/generators.js) function\n * `MAX_CLIENTS` the maximum concurrent players (defaults to 16)\n * `NAME` the server name (for the public registry)\n * `PRELOAD` a chunk radius around the spawn area to be preloaded\n * `PUBLIC_URL` public url of the server (for the public registry)\n * `SEED` 16bit world generation seed. (0 - 65535)\n * `STORAGE` directory in where to store the generated/modified chunks\n\n```bash\n# random seed, no preload, 16 clients\nnode server/main.js\n# same, but preloading a 10 chunk radius around the spawn area\nPRELOAD=10 node server/main.js\n# flat world for only 4 clients with persistence\nGENERATOR=flat MAX_CLIENTS=4 PRELOAD=10 SEED=1234 STORAGE=./data node server/main.js\n# heightmap driven world generator\nGENERATOR=heightmap COLORMAP=./island_rgb.png HEIGHTMAP=./island_height.png node server/main.js\n```\n\n#### Local development\n\nwebxr requires an https origin. to test with headsets on your local network:\n\n```bash\n# generate a self-signed cert/key:\nopenssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt\n# start the server with TLS\nTLS_CERT=server.crt TLS_KEY=server.key npm start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielesteban%2Fblocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielesteban%2Fblocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielesteban%2Fblocks/lists"}