GithubHelp home page GithubHelp logo

Comments (4)

jboarman avatar jboarman commented on May 13, 2024

This gets to the heart of how we formulate our philosophical approach to composing augmentation functionality. I believe @kwcckw had some comments that similarly touch on how we compose some fundamental augmentations.

For example, issue #11 aims to combine two fundamental augmentations into a single augmentation that has an identifiable purpose and effect. The aim of #11 is to make augmentations more user friendly to the casual user.

But, what if we want to re-use that "dusty ink" effect in some other way on another augmentation?

I propose that composition occurs in (at least) 3 different levels:

  1. library of utility python functions that can be re-used between various augmentations
  2. augmentations
  3. pipelines

The casual Augraphy user will leverage the default pipeline. A slightly more advanced user will compose their own pipeline from available augmentations. The most advanced user will create custom augmentations in their own code that is added to a custom pipeline.

I believe there is an additional level of composability that I don't think we have approached, which is to compose pipelines using other pipelines. So, for example, perhaps there is a "Letterpress" pipeline (instead of a "Letterpress" augmentation). That pipeline might leverage dusty ink and ink blobs augmentations. Then, a pipeline might pull in the "Letterpress" pipeline as a OneOf sequence that is invoked from their own custom pipeline.

Anyhow, before we get too much further, we need to formulate a consensus opinion on how we can balance having a set of user-friendly and easily-identifiable purpose-driven augmentations vs micro augmentations that must be mixed and matched to compose a particular effect.

from augraphy.

kwcckw avatar kwcckw commented on May 13, 2024

I propose that composition occurs in (at least) 3 different levels:

1. library of utility python functions that can be re-used between various augmentations

2. augmentations

3. pipelines

Yes, i think this is important since some augmentations may redundant to each other. Additionally, is there a better way to avoid those same redundant augmentation?
For example, in #11 , we are merging dusty ink and ink blob in ink phase, so there shouldn't be anymore dusty ink and ink blob augmentation in ink phase.

from augraphy.

proofconstruction avatar proofconstruction commented on May 13, 2024

I wrote some thoughts on future directions in #22 - in short, I think we should end up with a small set of useful augmentations to show the utility of the package (things like paper fold, ink bleed, scanner lines, etc.), but also provide easier ways to combine and extend existing features (at the different levels mentioned above), and to add new features where desired.

from augraphy.

jboarman avatar jboarman commented on May 13, 2024

I'm closing this issue since #25 covers at least half of the concern raised here. Topics of composition are being adequately discussed elsewhere. The mechanical deformations proposed are good ones that should be independently proposed on a per-transform basis along with examples of the expected output.

from augraphy.

Related Issues (20)

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.