Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skarkkai/touch-mapper
Tactile map maker. Creates 3D or embosser printable files for requested OpenStreetMap areas.
https://github.com/skarkkai/touch-mapper
3d-printing accessibility blind blindness openstreetmap touch-mapper
Last synced: 8 days ago
JSON representation
Tactile map maker. Creates 3D or embosser printable files for requested OpenStreetMap areas.
- Host: GitHub
- URL: https://github.com/skarkkai/touch-mapper
- Owner: skarkkai
- License: other
- Created: 2017-01-22T13:00:40.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-08-09T14:50:49.000Z (6 months ago)
- Last Synced: 2024-08-09T16:31:25.996Z (6 months ago)
- Topics: 3d-printing, accessibility, blind, blindness, openstreetmap, touch-mapper
- Language: Java
- Homepage:
- Size: 23 MB
- Stars: 78
- Watchers: 11
- Forks: 20
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: COPYING.txt
Awesome Lists containing this project
README
# Touch Mapper
Tactile map maker. Creates files for 3D or embossing printing from OpenStreetMap data. See https://touch-mapper.org
## Development
### Install dependencies
./init.sh
### Setup AWS CLI
aws configure
### Create AWS resources
make dev-aws-install
API Gateway for accessing email sending Lambda is for now not created
automatically. The same API GW endpoints can be used by all Touch Mapper
instances.### Install static website to S3
make dev-web-s3-install
Last line of output gives the URL (https://something.cloudfront.net) where
the web UI can be accessed.### Run OSM -> STL converter service
In a tab of its own:
install/run-dev-converter.sh
### Local web development
In `web` dir, in separate tabs:
make watch
make serveYou can now access the web UI in http://localhost:9000
## Feature roadmap
List is in a rough priority order.
- Allow printing a QR sticker that points to touch-mapper.org/?map=deadbeef
- Allow inspecting maps on a touch device.
- APH's Nearby Explorer, and other apps
- Describe map contents in the web UI (in progress).
- Roads: intersections between roads, and between roads and map borders; street numbers
- Points of interest, esp. bus stops: https://developers.google.com/maps/documentation/javascript/places#place_search_requests
- Support hot-keys for area adjustment, so that choosing the area is practical for a blind user
- Describe map contents in audio
- Could perhaps crowd source production of the descriptions
- Print labels for roads and/or points of interest
- Maybe use short labels, and offer a separate legend that maps the labels to longer descriptions. The legend could be electronic.
- Replace spinning 3D preview with one or more larger static images, create using Blender Render, using ambient occlusion
- 3D preview is too small and unclear, and doesn't work on all devices
- Remember user's past maps
- Avoid significant overlaps between roads and buildings. This would enable reliable two-color 3D printing.
- Print a compass star into corner of the map
- Indicate map scale using small dots on map borders
- Smaller scale modes: only show water/land/green areads; N largest roads; city borders
- Non-square maps
- Indoor areasTechnical TODO:
- Move converter from EC2 to Lambda
- Do all the work in a Java application that could be based on the first stages
of OSM2World transformation pipeline. Benefits:
- Do road processing mostly when they are still line segments rather than 2D objects
- Create embosser input
- Avoid roads intersecting with buildings => enable two-color 3D printing
- Maybe use https://sourceforge.net/projects/jts-topo-suite/
- Much easier to describe map contents (eg. roads intersecting with edges)
- Better performance
- Simpler processing pipeline