Project Details
- Title:
matcher.js
library andLeaflet.DistortableImage
overhaul - Repositories created (and contributed to):
matcher-core
andmatcher-cli
- Repositories contributed to:
Leaflet.DistortableImage
Project Description
matcher-core
matcher-core
essentially employs the ORB(Oriented FAST and Rotated BRIEF) algorithm to mine patterns using the well-known FAST(Features from Accelerated Segment Test) keypoint detector and the BRIEF(Binary Robust Independent Elementary Features) descriptor technologies, which provide appreciable performance boosts on low computational costs.
matcher-cli
A Node-based CLI utility for headlessly testing custom matcher-core configurations, this module eases any development process on the matcher-core library by allowing the user to run a set of commands on their locally deployed Chromium environment in a headless manner, i.e., right from the CLI, without the need to open the browser whatsoever, be it testing, demonstration, debugging issues, etc. matcher-cli
enables headless support for all of these tasks, and can easily integrate with your choice of CI to automate any of the above tasks right inside your CI.
Leaflet.DistortableImage
A Leaflet extension to distort images -- "rubbersheeting" -- for the MapKnitter.org (src) image georectification service by Public Lab. Leaflet.DistortableImage allows for perspectival distortions of images on the client-side.
Project Demonstrations
matcher-core
Watch the matcher-core
in action by mapping two 4K images this demo.
matcher-cli
Run the following command inside your terminal for an interactive demo.
$ bash <(curl -s https://gist.githubusercontent.com/rexagod/6e1a2cfdc18e1b12ff8d64b5d4e6985a/raw/e5cf33c9bb2427f25d8394d0e007cabc40a8a5da/cli-demo.sh)
Leaflet.DistortableImage
Checkout the stitcher
and projector
helper modules for matcher-core
in action here by enabling matcher.js
from the bottom-left. The current progress is demonstrated here which I got the opportunity to contribute to for some time as well.
Project Involvement
Being welcoming in nature, the README.md
s below have been catered from a contributor's perspective, and include almost every resource a contributor would require in order to get started with these.
FTOs can be found below.
Project Leftovers and Future Plans
matcher-core
- Implementing streams for data flow between sockets. This would immensely reduce noise, and speed up the load time. The idea's pretty simple, send the
utils
promise directly to the socket in the form of a stream and resolve it there and then. - Rebasing
rexa-soc-ldi
after we shift to ES6. - Containerized build through Docker on the CI.
- More (unique) headless automated tasks (other than tests, for eg., crossposting back to the PR on each build, etc.) on the CI.
- Rebasing
matcher-module
once we modify image-sequencer for asychronous modules (as proposed to@jywarren
).
- Implementing streams for data flow between sockets. This would immensely reduce noise, and speed up the load time. The idea's pretty simple, send the
matcher-cli
- Vorpal was incorporated for a better understanding of the codebase, but takes a bit to load. Implementing Vorpal's APIs purely in Node would definitely bring up the loading time, but it would be a tradeoff for code abstractions.
- Generalize standard methods and expose APIs to gain flexibility.
Leaflet.DistortableIamge
- PWA conversion! Perhaps take a step further and integrate electron as well.
- In-browser drag and drop functionality.
- Headless tests on CI.
Project Overall Contribution
matcher-core
matcher-cli
Leaflet.DistortableImage
Project Experience
The Public Lab community has supported me througout the duration, and even before this Summer of Code began, and granted me such a great opportunity to work among such brilliant and supportive people, for which I'll always be obliged to them. I've undoubtedly learnt numerous stupendous concepts throughout my time here, and perfected my passion for JavaScript through the guidance of my mentors, who were always there to support me, motivate me, and help me push my limits, for which I'll always be thankful.
Thank you, Public Lab, for such a fascinating experience, I'd love to continue being a part of and keep on contributing to this amazing community!
3 Comments
@gauravano awards a barnstar to rexagod for their awesome contribution!
Reply to this comment...
Log in to comment
Although, the research paper you referenced at the top explains the algorithm but, try to explain it via a rough sketch/GIF/Video about the algorithm. You can also add a GIF to matcher-core and matcher-cli Readme files.
Thank you so much for your great contributions in all the projects. Your enthusiasm for JS is great. I hope, you'll motivate many new developers and contributors, and will learn more and grow more.
Cheers!!
Reply to this comment...
Log in to comment
Great work pranshu!!!
Reply to this comment...
Log in to comment
Login to comment.