Code for an api for a mechanical computer (Brunsviga 13RK). Wrapper around a human or robot in the loop.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
images
web
.gitignore
LICENCE
LICENSE.bootstrap
README.md

README.md

brunsviga

Code for an API for a mechanical computer (Brunsviga 13RK). Wrapper around a human (or possibly robot) in the loop.

LICENSE

Licensed under GPLv3 licence except for bootstrap and jquery components licensed under the MIT licence.

Access

To access the brunsviga as described in the Implementation section below, please check out brunsviga.io. Note that I generally keep the Brunsviga 13RK at work, and I have a life outside of work, so don't expect a response to a web request after (Australian Eastern Standard/Daylight Time) work hours.

Plan

Here's the overall plan

  • Provide human-friendly web form for submitting requests.
  • Sanity check human input.
  • Use AWS API gateway service to provide a REST API.
  • Trigger an AWS lambda function that sends JSON via AWS SNS of operation to be run by a human.
  • create s3 bucket for human operator to upload videos of calculations to (using iPhone with Transmit-iOS app),
  • convert videos to mp4 and then upload, using AWS CloudFront to serve content for faster access. To do: look at AWS Elastic Transcoder for conversion (instead of Photos app on OS X).

then video link is emailed to requestor.

Deployment

  1. Define an SNS topic called brunsviga, and subscribe the human operator's email address to that email.
  2. (Optional) update the region in api/serverless.yml.
  3. Make sure you have serverless installed: npm install -g serverless and have your AWS credentials set up.
  4. Set up an s3 bucket holding index.html and css/, fonts/, images/ and js/, and I also recommend using CloudFront CDN. The s3 upload can be done by aws s3 cp web s3://mybucket/ --recursive

First calculation run

First request as received by human operator

Video:

Video of calculation

Future ideas

  • How to deal with tracking and returning requests (use DynamoDB?).
  • Could build a robot to work inputs and turn knob, plus OCR for readout.

Images

Brunsviga 13RK me operating my Brunsviga 13RK