{"id":25425182,"url":"https://github.com/moaxaca/ui-engineer-coding-challenge","last_synced_at":"2025-07-06T00:05:35.821Z","repository":{"id":83311451,"uuid":"81970056","full_name":"moaxaca/ui-engineer-coding-challenge","owner":"moaxaca","description":"Coding challenge for this job: https://angel.co/hivemapper/jobs/204332-web-ui-engineer Email dane@hivemapper.com if you want to complete this but haven't talked to us yet.","archived":false,"fork":false,"pushed_at":"2017-02-14T00:05:57.000Z","size":22188,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-06T00:05:27.080Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":false,"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/moaxaca.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,"zenodo":null}},"created_at":"2017-02-14T17:17:05.000Z","updated_at":"2022-08-09T09:00:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d451c57-0b15-4936-b727-088e03343855","html_url":"https://github.com/moaxaca/ui-engineer-coding-challenge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/moaxaca/ui-engineer-coding-challenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moaxaca%2Fui-engineer-coding-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moaxaca%2Fui-engineer-coding-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moaxaca%2Fui-engineer-coding-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moaxaca%2Fui-engineer-coding-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moaxaca","download_url":"https://codeload.github.com/moaxaca/ui-engineer-coding-challenge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moaxaca%2Fui-engineer-coding-challenge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263827296,"owners_count":23516789,"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":[],"created_at":"2025-02-16T23:19:46.201Z","updated_at":"2025-07-06T00:05:35.815Z","avatar_url":"https://github.com/moaxaca.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hivemapper UI Engineer Coding Challenge\n\nThis coding challenge is designed to test your 3D graphics ability. If you have not worked with OpenGL and/or Three.js before, this challenge will be painful. We have set up a basic application structure as a starting point, but feel free to implement this however you see fit.\n\nThis challenge shouldn't take more than 4 hours to finish. Task 2 is signifigantly easier than task 1.\n\nPlease document your code as you would in a production system. Please also include a short `README` explaining how you approached the problem, and things you might improve on given more time.\n\n### How to run\nDownload this repo. If you are going to clone it, do so privately so that nobody else can see your answer.\n\n```shell\nnpm install\nnpm run transpile # Run each time to recompile your Javascript.\n```\n\nOpen up `index.html` in your browser.\n\n### About the point cloud\nThe point cloud provided is a downsampled version of the point clouds that Hivemapper uses to build our map. It is:\n\n- A [PLY](https://en.wikipedia.org/wiki/PLY_(file_format) file.\n- Somewhere in San Francisco.\n- In the [ECEF](https://en.wikipedia.org/wiki/ECEF) coordinate system.\n- Measured in meters ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System#A_new_World_Geodetic_System:_WGS_84))\n- [ASCII](https://github.com/Hivemapper/ui-engineer-coding-challenge/blob/master/Point%20Clouds/point-cloud-ascii.ply) version so you can see what the coordinates look like.\n\n`App.jsx` already does the work of loading and parsing the PLY file into a THREE.Geometry.\n\nFeel free to download the PLY file and open it in a viewer like [MeshLab](http://www.meshlab.net/) or [CloudCompare](http://www.danielgm.net/cc/) to see what it looks like.\n\n## Task 1: Render the point cloud\nWith the `THREE.Geometry` loaded by `App.jsx` as a starting point, render this to the screen. There's no right answer here. Don't worry about integrating 3D controls, a static scene is fine.\n\nNote:\n\n- The ECEF coordinate system doesn't align nicely with any of the scene's axes so the model will look slanted. Can you compensate for this so that the scene looks upright?\n- WebGL doesn't work well large ECEF coordinates (Javascript does), so you will see floating point imprecision in the scene. Can you correct for this?\n- We've included Three.js in the starting code. Feel free to not use Three.js if there's something else you are more comfrotable with.\n\n## Task 2: Color the point cloud based on altitude\n`App.jsx` comes with two buttons at the top to switch between color modes. For 'Color By Altitude' please color each point based on it's relative height above sea level. In the model provided the minimum altitude is 6.65 meters and the maximum is 58.57 meters.\n\n`geo-utils.js` is your friend here.\n\n### Submitting\nPlease email a zip of this repository, along with any build instructions, to dane@hivemapper.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoaxaca%2Fui-engineer-coding-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoaxaca%2Fui-engineer-coding-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoaxaca%2Fui-engineer-coding-challenge/lists"}