GithubHelp home page GithubHelp logo

dbl-visualization's People

Contributors

bartwesselink avatar jordyverhoeven avatar masboes avatar nicoknl avatar roanh avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dbl-visualization's Issues

Screenshot funtionaliteit werkt niet met webGL.

Het lijkt erop dat de screenshot functionaliteit niet werkt als de content door OpenGL is gerenderd. Het resultaat is simpelweg een transparante afbeelding met de grootte van het canvas element.

Het ziet er naar uit dat het ook simpel op te lossen is: https://stackoverflow.com/questions/31710748/todataurl-of-webgl-canvas-returning-transparent-image

Het ziet er naar uit dat dit het gedeeltelijk oplost, echter de achtergrond kleur word niet mee opgeslagen.

opengl demo visualization

Based on some discussion between @RoanH and me, we figured it might be a good idea for now to have a 'default visualization' which demoes the functionality of the openGL draw methods. This way it stays modular and we can prevent merge conflicts on that.

Canvas initialization issues

Dit is een probleem dat gerelateerd overkoepelend lijkt te zijn voor zowel #22 (PR voor de GL test) van @RoanH als de nog oudere PR die al gemerged is met master. Namelijk dat het canvas zijn eerste redraw() niet daadwerkelijk laat zien.

image

Een browser resize triggered een daadwerkelijke refresh waarbij het canvas correct haar content toont.

Add nodeSize to data structure

In #42 subTreeSize functionality was added. However, for certain data sets in the future it might also be useful if every node can have a specified size other than 1. For example when visualizing file sizes of a file/folder hierarchy.

The webapp/page is not a full responsive design / UPDATE DESIGN

Currently the web page does not work on most screen sizes other than a fairly high resolution, somewhat wide aspect ratio window. This is evident when using a device in "portrait" orientation. Most styling elements are (fairly) fixed size and are not relative to screen size, including our visualization canvas.

To be clear I believe this is very low priority, however I do think it warrants a mention for potential future feature.

Example screenshots:
https://i.imgur.com/wrO0lNT.png
https://i.imgur.com/BXu408z.png

Screenshot transparency bug

Introduction

I'm opening this issue to give a more thorough overview of a recent bug that has been encountered, but unlike in #23 , this is something I feel we should address as it is not a 'possible feature' but a genuine bug.

Images

Below a couple of images in different pieces of software, giving insight into what is going on.
image
image

Tree in the viewport

image

Possible fix

As there are values on the pixels where they should be, but just the representation is inconsitent across applications and always wrong, ánd the correct color appears at the edges (probably due to anti-aliasing), I strongly suspect this to be an encoding issue.

One thing to perhaps consider is that, unlike many image-formats (such as EXR, RAW, TIF) which use an RGBA format, PNG uses RGB and transparency. Transparency != alpha.

I haven't looked at this further, but perhaps this is an angle to approach this from.

Screenshot werkt niet de eerste keer.

Wellicht dat het canvas dan nog 0 x 0 heeft als size? Ben er niet ingedoken, maar de eerste png die ik export via die knop is consistent niet te openen.

image

OpenGL optimalisation

The implementation as it is work perfectly fine. However it is possible to make some significant optimalisations.

High level overview

  • Reimplement colors
  • Refactor arrays
  • Ignore vertices outside of the viewport
  • Ignore vertices smaller than half a pixel
  • Precompute Matrices
  • Remove depth
  • Remove alpha
  • Write shape optimized shaders
  • Optimize the rendering pipeline

Shapes that are functionally done

Branch: opengl/optimalisation

  • Filled Rotated Quad
  • Drawn Rotated Quad
  • Lined Rotated Quad
  • Filled AA Quad
  • Drawn AA Quad
  • Lined AA Quad
  • Filled Ellipsoid
  • Drawn Ellipsoid
  • Lined Ellipsoid
  • Filled Circle
  • Drawn Circle
  • Lined Circle
  • Ellipsoidal Arc
  • Circular Arc
  • Line
  • Poly Line
  • Filled Ring Slice
  • Drawn Ring Slice
  • Lined Ring Slice
  • Filled Circle Slice
  • Drawn Circle Slice
  • Lined Circle Slice

Tree navigator data does not correspond to selected tab

The data displayed in the tree navigator is always based on the last file that was uploaded rather than the visualization that is currently being shown. Switching tabs the user can potentially see different visualizations of different data while the tree navigator on the right never updates.

I propose one of the following solutions, but I'm always curious for feedback.

  • Link the tabs to a data set such that upon opening a tab a data set gets locked in to that tab and switching to a different tab the user gets to see the data associated to that tab (potentially the same if the user did not upload new data in between switching two tabs. (The difficulty with this one is what do you do when the user uploads new data? Perhaps we should not update the tree either until a new tab is created instead of on upload)
  • Make it so that all the tabs always show the same, latest data visualized and that the tabs only serve to switch between different visualizations of the same data. (I don't like this idea)

There are many more solutions, but they are intertwined with other design elements of our UI/UX. Thus I propose that we discuss this the next time we meet in person to think this out more thoroughly.

Screenshot: https://i.imgur.com/iMfTF2j.png
Note that the visualization on the left is obviously broken, but it resembles ((A,B),(C,D)) while the tree on the right resembles something much larger.

[Utility] Color and gradient related library

Introduction

In multiple visualizations we will have to deal with color and or color-gradients. It would be usefull if we could create a module which implements this in a consistent way.

Suggestion

The creation of a Color module with the following methods and properties:

  • [property] x / r / red
  • [property] y / g / green
  • [property] z / b / blue
  • [property] a / alpha
  • [property] rgb
  • [property] rgba
  • randomRGB
  • randomRGBA
  • gradient2D
  • ...

Conclusion

Feel free to update this list and/or discuss.

[Tree Map] Comment code

Add comments later because I'm lazy and in the future some changes need to be made anyway.

OpenGL deinitialization

Currently the OpenGL context stays alive after closing or reloading the website until the maximum context count of 16 is reached. Therefore memory is not released.

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.