Coder Social home page Coder Social logo

stokeaggregation's Introduction

StokeAggregation

Group members:

  • Montana Fowler
  • Ben Gabinet
  • Leon Lei
  • Fangrui Tong

Project Summary:

We are planning to implement a stroke aggregator using C++ with Blend2d. We plan to segment work as follows:

Week 1:

Planning, test cases, firm grasp of paper. Set up version control. We will start by having one person setting up our vector graphics library. At the same, one of us will be writing a single metric for stroke clustering, while the rest work on setting up data structures to store vector drawings & metrics. (Ben: Graphics Lib, Leon: Metrics (likely angular compatibility since this is used for clustering), Montana/Fawn: data structures, Montana: produce test drawings on tablet)

Week 2:

Once we have some basic metrics down, we will work on basic cluster formation and fitting clusters to a single stroke. We will focus on getting metrics working will a very basic test image. (Once displaying images is done, we will split into teams of two: one for metrics and one for clustering, Ben/Montana: Metrics, Leon/Fawn: Clustering) Intended deliverables: Correct clustering for obvious test cases (not necessarily visual, just the correct number of clusters).

Week 3:

Work on combining metrics will begin here, as well as testing on more complex images and metrics. Ben will work on displaying our images Deliverables: Correct outputs with more complex test images, using combined metrics. Potentially display our final images.

Week 4:

Work on fine grained clustering and continue working on displaying images. At this point we will hopefully be working on fixing any bugs.

Week 5:

Grace period!

Member Backgrounds:

Ben Gabinet:

3D Animation student and 2D Game Engines TA. Programming for Maya, Nuke, Houdini, and After Effects. Experience in web development and software engineering. Knowledgeable in 2D vector design programs such as premier.

I would like to learn more about vector graphics and programming for software that works in 2D.

Leon Lei:

Artificial Intelligence/Machine Learning, Graphics, Computer Vision, Web Apps (HTML, SVG, visualization), SWE, Basic (and not as basic) Maths.

I would be interested in learning more about how they cluster and refine clusters, as well as gain more comfort with optimization problems

Montana Fowler:

Graphics TA, Software Engineering Experience, drawing pad, some vectorized drawing experience, artist, stats, linear, research in visual computing lab

What I would like to learn: what its like to build a support artist tool, how to read strokes and artistic intention through programming, how to implement a research paper, use Blend2d api, optimization

Fawn Tong:

Computer Vision, Software Engineering, Web Development (HTML, CSS, SVG, web apps TA), experience in implementing vectorized drawing apps, experience in 2d drawing/sketching, research in graphics lab

What I would like to learn: Solving for optimization problems, creating a 2d drawing app with an integrated backend.

Paper:

https://www.cs.ubc.ca/labs/imager/tr/2018/StrokeAggregator/StrokeAggregator_authorversion.pdf

Necessary Libraries/Resources:

Metrics:

  • Angular compatibility -> main metric for clustering
  • Connectedness -> strokes are connected (like multiple connected strokes to make a curve), used to generate initial clusters
  • Narrowness -> used for cluster refinement (branch separation), ratios of width and length to determine lines vs. rectangles
  • Strength in numbers -> repeated strokes in same area, includes outlier case when artist tries to cover a mistake
  • Relative proximity -> enforce curve connections (connect two strokes if they are close enough)

stokeaggregation's People

Contributors

tandraboy avatar

stokeaggregation's Issues

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.