Giter VIP home page Giter VIP logo

associationengine's Introduction

Eli C Davis

  • Founder of Recolude, a startup that helps game developers record players in-game to provide insight into how their application is used. Follow the progress on twitter or DM me if you have special usecases. Demo here.
  • In my free time, I work on a procedural mesh editing and generation library named Polyform. A few utility libraries have spawned from it's undertaking as well that might be useful to others:
    • vector - Immutable vector math library
    • jbtf - GLTF-inspired JSON schema for embedding arbitrary binaries
    • quill - Scheduler of operations on in-memory data
    • sfm - Utilities for interacting with reconstruction data from different SFM programs
    • iter - Iterator and utilities. Some inspiration from ReactiveX
    • bitlib - Utilities for reading and writing binary data

associationengine's People

Contributors

cwlampley avatar elicdavis avatar jacobamason avatar nathantfrank avatar rickarendall avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

associationengine's Issues

Create Subscriber interface

The 'on_data' function is spread across multiple different classes for subscribing which should be put in it's own interface.

Create Snapper

Snapper should be able to subscribe to a Raw Sensor, and publish data to it's subscribers.

  • Determine output format for interfacing with Variable
  • Determine expected input value from Raw Sensor
  • Implement algorithm to convert from input to output
  • Implement actual publish-subscribe connections to Raw Sensor and Variable objects

Implement Aggregation

Must actually implement proper aggregation to replace the simple echo placeholder

Relationship Mock Class

Create a MockRelationship class that inherits from the Relationship class that makes testing the parts of the system easier and more reliable.

Create Association Matrix

  • Determine effective data format (possibly a nested array?)
  • Develop method to add relationship object
  • Develop method to remove relationship object

Research Aggregation Algorithm

The meat of the Snapper's functionality.

This will include the method for synchronizing values into a coherent snapshot in the event that they are out of line. This issue will be long-standing and will encompass multiple smaller issues for a while as we research the viability of different approaches.

Restructure Snapper Module

Need to restructure the module to have a clean interface via a manager class that creates and manages instances of Snapper, AssociationMatrix, and the Variables, Relationships, etc necessary for function internal to the system.

Create Wrapper Methods for Matrix in Manager

Need to implement wrappers for Matrix methods:

  • get_value_matrix
  • get_relationships_by_value_range

This needs to be done to avoid the end user needing to acquire an instance of AssociationMatrix and operate on it directly. Instead, the end user should only ever interact directly with an instance of Manager.

Update UML Diagrams

Changes to the architecture have been made and we need to update the diagrams to reflect the new architecture.

Implement Placeholder Snapshot Aggregation

Implement a basic aggregation method to fill in for the final method in Issue #10 until we complete research.

This fill in method should just simply return the most recent value from each sensor for publishing to its corresponding variable and be written in a way that will allow for easy transition to the true algorithm by just simply reading from the built in data buffer.

Integrate Tox Into Testing

We want to use tox to consolidate and standardizing testing frameworks. Helps test code against multiple versions of python quickly.

Create Variable

Variable should be able to subscribe to Snapper and publish to the relationship subscribers

Be Able To Feed Program Spread Sheet Of Data and Run From There

This Serves Two Purposes

  1. This spread sheet should be used for integration testing
  2. What will be run as an example for the demo

Realistically, sensors don't follow perfect functions like Sine and Cosine.
Instead, we should have a sensors read a spreadsheet column to get it's values. This is a sufficient way to simulate "real-life" data.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.