RapidLib issueshttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues2018-01-19T14:11:33Zhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/122Experiment with web workers2018-01-19T14:11:33ZMichael ZbyszyńskiExperiment with web workersTraining and running functions are currently blocking the main UI thread. I suspect they're fighting with maxiLib, too.
It would be nicer to use web workers and callbacks. But, that will take some design and make the API significantly l...Training and running functions are currently blocking the main UI thread. I suspect they're fighting with maxiLib, too.
It would be nicer to use web workers and callbacks. But, that will take some design and make the API significantly less cross-platform than it is now.Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/114Try web assembly2017-11-14T14:18:51ZMichael ZbyszyńskiTry web assemblyWeb assembly is smaller and potentially faster than asm.js.
It's possible that em++ will compile to wasm with the ```-s WASM=1``` flag? It's worth a try. We should do some real benchmarking some time.Web assembly is smaller and potentially faster than asm.js.
It's possible that em++ will compile to wasm with the ```-s WASM=1``` flag? It's worth a try. We should do some real benchmarking some time.https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/113Explore nbind2017-11-04T13:04:30ZMichael ZbyszyńskiExplore nbindThis nbind project:
https://github.com/charto/nbind#readme
Seems to combine native Node libraries with Emscripten-transpiled browser libraries. It might be just the thing for RapidLib. We should experiment with it if we ever have time.This nbind project:
https://github.com/charto/nbind#readme
Seems to combine native Node libraries with Emscripten-transpiled browser libraries. It might be just the thing for RapidLib. We should experiment with it if we ever have time.Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/109JS seriesClassification fails with large series2017-09-21T13:33:58ZMichael ZbyszyńskiJS seriesClassification fails with large seriesTesting on this page:
https://live.codecircle.com/d/87dKNLQorohuER84X
seriesClassification seems to fail when either the learned series or the input series is long. This is inconsistent, though.Testing on this page:
https://live.codecircle.com/d/87dKNLQorohuER84X
seriesClassification seems to fail when either the learned series or the input series is long. This is inconsistent, though.API demonstratorsMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/108API methods for training data quantification2018-01-19T14:25:20ZFrancisco BernardoAPI methods for training data quantificationThe quantity of data should be made visible on the high level interfaces — quantity of data can have multiple aspects to it — (e.g., #recorded Rounds, #examples per round, #total memory consumption). In one instance, one participant no...The quantity of data should be made visible on the high level interfaces — quantity of data can have multiple aspects to it — (e.g., #recorded Rounds, #examples per round, #total memory consumption). In one instance, one participant noticed the memory of the browser was reaching 3GB, and found this unusual, and also observed the consequences in training time.
Recommendation: Participants would benefit from API methods (namely in the training data class) that provide metrics about quantity or volume of data. This should help developers in design by making them explicit through the visual interface metaphors they develop. It should also be explained in the documentation the consequences of dealing with large data sets (e.g., training time, impact on the classification results outcomes, etc.)https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/107Classification/regression model training - Progress and termination feedback2018-01-19T14:11:33ZFrancisco BernardoClassification/regression model training - Progress and termination feedbackUsers have found the training process cumbersome mainly concerning visibility of system status. This is a major usability problem that has been observed across different user interventions.
In many occurrences in which the users recor...Users have found the training process cumbersome mainly concerning visibility of system status. This is a major usability problem that has been observed across different user interventions.
In many occurrences in which the users recorded a medium-to-large amount of data, they could not understand whether the training process was crashing or just taking to long. In some cases it led them to terminated the browser window.
Recommendation: Implement asynchronous event notification in the training method (e.g., client code should subscribe to an event with a handler that reports progress and/or termination)Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/106Thread hogging behaviour when training a classification/regression model2018-01-19T14:11:31ZFrancisco BernardoThread hogging behaviour when training a classification/regression modelThe "thread hogging" behaviour of the JS client API is problematic as it blocks the whole interface. This is a problem with a severity level between Major Usability problem and Usability catastrophe (Nielsen), observed with high frequenc...The "thread hogging" behaviour of the JS client API is problematic as it blocks the whole interface. This is a problem with a severity level between Major Usability problem and Usability catastrophe (Nielsen), observed with high frequency between different actions and users.
For instance, one participant, decided to move away from using the JS client library to trying to use a server side implementation (which also was problematic on its own). It would be beneficial to explore a Web-worker implementation to surpass this problem.
Recommendation:
Pursue a design pattern in which there are two learning modules (i.e., two classification modules, or two regression modules) one on the regular JS client code, another on the web-worker code. The web worker code receives training data from regular code, trains the model, and exports the JSON model to the regular JS code model, that loads it and runs test data with it.Future APIFrancisco BernardoFrancisco Bernardohttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/105FastDTW in JS2017-09-20T11:40:44ZMichael ZbyszyńskiFastDTW in JSThe JS build is currently failing because of a linker error around warpPath. Fix it.The JS build is currently failing because of a linker error around warpPath. Fix it.API demonstratorsMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/98"Shape identification using Dynamic Time Warping" is broken2017-09-01T09:10:30ZFrancisco Bernardo"Shape identification using Dynamic Time Warping" is brokenI haven't updated myself on the last changes on RapidLib.DTW but there is this bug about an offset in the example.
https://live.codecircle.com/d/87dKNLQorohuER84X
I suspect this is about the change in the library.I haven't updated myself on the last changes on RapidLib.DTW but there is this bug about an offset in the example.
https://live.codecircle.com/d/87dKNLQorohuER84X
I suspect this is about the change in the library.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/97Using RapidLib in a React/Webpack application2017-10-08T08:16:06ZFrancisco BernardoUsing RapidLib in a React/Webpack applicationI've been trying to use RapidLib in a React/Webpack application and haven't been able to do it.
I tried to use both versions of RapidLib. The one in code circle, supposedly client side JS library,
https://www.doc.gold.ac.uk/eavi/rapid...I've been trying to use RapidLib in a React/Webpack application and haven't been able to do it.
I tried to use both versions of RapidLib. The one in code circle, supposedly client side JS library,
https://www.doc.gold.ac.uk/eavi/rapidmix/RapidLib.js
and the "node" one (which I just learned that it isn't a node module, but unsure of what it really is)
http://doc.gold.ac.uk/eavi/rapidmixapi.com/examples/RapidLib.js.zip
So far I've had errors while trying to figure out what had a constructor and what is a function (given that this doesn't seem to be documented anywhere) referring that there is no constructor for RapidLib, Regression/Classification is not a function, or there is no constructor
`Failed to compile.
./src/rapidLib/RapidLib.js
Line 2: 'RapidLib' is not defined no-undef
Line 26: 'path' is not defined no-undef
Line 41: 'read' is not defined no-undef
Line 63: Unexpected use of 'print' no-restricted-globals
Line 64: 'printErr' is not defined no-undef
Line 66: 'read' is not defined no-undef
Line 74: 'readbuffer' is not defined no-undef
Line 76: 'read' is not defined no-undef
Line 81: 'scriptArgs' is not defined no-undef
Line 105: 'dump' is not defined no-undef
Line 109: 'importScripts' is not defined no-undef
Line 367: 'EmterpreterAsync' is not defined no-undef
Line 373: 'EmterpreterAsync' is not defined no-undef
Line 2536: 'readline' is not defined no-undef
Line 3460: 'FileReaderSync' is not defined no-undef
Line 4598: 'path' is not defined no-undef
Line 4609: 'node' is not defined no-undef
Line 5426: 'SOCKFS' is not defined no-undef
Line 5433: '__read_sockaddr' is not defined no-undef
Line 5435: 'DNS' is not defined no-undef
Line 5670: 'FUNCTION_TABLE' is not defined no-undef
Line 6396: 'SDL' is not defined no-undef
Line 6396: 'SDL' is not defined no-undef
Line 6396: 'SDL' is not defined no-undef
Line 6484: 'MozBlobBuilder' is not defined no-undef
Line 6484: 'WebKitBlobBuilder' is not defined no-undef
Line 6647: 'GL' is not defined no-undef
Line 6649: 'GL' is not defined no-undef
Line 6659: 'GL' is not defined no-undef
Line 6846: 'SDL' is not defined no-undef
Line 6847: 'SDL' is not defined no-undef
Line 6937: 'SDL' is not defined no-undef
Line 6939: 'SDL' is not defined no-undef
Line 6945: 'SDL' is not defined no-undef
Line 6947: 'SDL' is not defined no-undef
Line 6968: Unexpected use of 'screen' no-restricted-globals
Line 6969: Unexpected use of 'screen' no-restricted-globals
Line 6969: Unexpected use of 'screen' no-restricted-globals
Line 29674: 'quit' is not defined no-undef
`Francisco BernardoFrancisco Bernardohttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/96ES6 wrapper JS code2017-08-30T13:18:45ZJoseph LarraldeES6 wrapper JS codeIt would be nice to be able to write the wrapping code in es6 and transpile it with babel before passing it to emscriptenIt would be nice to be able to write the wrapping code in es6 and transpile it with babel before passing it to emscriptenJoseph LarraldeJoseph Larraldehttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/82Expose hidden layers to API2017-09-01T10:12:54ZMichael ZbyszyńskiExpose hidden layers to APIThe neural network algorithm could have more hidden layers, but there's no way to set that right now. The algorithm code hasn't been seriously tested, either.
Add a set() and get() method, and make sure they work.The neural network algorithm could have more hidden layers, but there's no way to set that right now. The algorithm code hasn't been seriously tested, either.
Add a set() and get() method, and make sure they work.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/73Finish JSDocs for rapidStream2017-06-19T12:37:50ZMichael ZbyszyńskiFinish JSDocs for rapidStreamThe individual functions for rapidStream aren't documented yet.The individual functions for rapidStream aren't documented yet.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/90RapidLib: Classifiers with string labels2017-08-30T12:05:37ZMichael ZbyszyńskiRapidLib: Classifiers with string labelsRapidLib classifiers should natively deal with strings as labels, rather than rely on the unordered_map in the facade.RapidLib classifiers should natively deal with strings as labels, rather than rely on the unordered_map in the facade.Future APIMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/72Handle versioning2017-09-20T10:05:07ZMichael ZbyszyńskiHandle versioningPrint version out in JS console.
Define version as a C++ macro.Print version out in JS console.
Define version as a C++ macro.API v0.2Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/71expose getK and setK to javascript2017-12-08T10:23:02ZMichael Zbyszyńskiexpose getK and setK to javascriptCreate embindings for these functions.Create embindings for these functions.API v0.2Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/66MFCC example2017-05-02T14:07:05ZMichael ZbyszyńskiMFCC exampleI'm sick of examples that are fancy interpolation. It's hard to get around that with just mouse input.
Make a demo using MFCC from Maxi.I'm sick of examples that are fancy interpolation. It's hard to get around that with just mouse input.
Make a demo using MFCC from Maxi.API v0.3Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/62JSON parsing will break if node order is changed2017-08-16T13:17:22ZMichael ZbyszyńskiJSON parsing will break if node order is changedThe current code relies on node order, rather than doing string matching on the node names. It will break if the nodes are presented in a different order than expected.The current code relies on node order, rather than doing string matching on the node names. It will break if the nodes are presented in a different order than expected.Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/61Wekinator-like output limits2017-08-16T13:17:22ZMichael ZbyszyńskiWekinator-like output limitsWekinator has some options for limiting the output. Duplicate those in our API.Wekinator has some options for limiting the output. Duplicate those in our API.Future APIhttps://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/60Rapid-Myo building block in Node.js + React.js2017-09-07T14:44:09ZFrancisco BernardoRapid-Myo building block in Node.js + React.jsFrancisco BernardoFrancisco Bernardo