Coder Social home page Coder Social logo

microscenery's People

Contributors

moreapi avatar powerofnames avatar skalarproduktraum avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

microscenery's Issues

Toggle between keyboard layouts

Story

As a user I want to press a button to toggle between moving the camera or focus frame with the "WASDQE"-Keys.

Details

Currently the keyboard control of the focus frame is done with the keys "cvgbnm" and it sucks. There should be a button/behavior to disable the default camera movement with "WASD" and whatever is on "Q" an "E" (or "YX") and use those buttons to move the focus frame. Of course the end goal is to do the movement via VR but this helps greatly for development and scenarios where vr is not available.

links

zulip thread
current behavior

Extend fake Camera MM driver to give sensible responses for float and out of range positions.

  • define camera height and width in pixel
  • camera position is given by stage area
  • on a image request return tiff[cameraPos to cameraHeight,cameraWidth]
    • if the camera frame is over the borders of the tiff return 0 for those parts of the frame.

Repo and Branch

https://github.com/moreApi/mmCoreAndDevices/tree/extendFakeCam

Links

somewhat old documentation on device adapters: https://micro-manager.org/Building_Micro-Manager_Device_Adapters#contributing-device-adapter-source-code-to-micro-manager
readme of the original plugin: https://micro-manager.org/FakeCamera
branch and readme of the extension: https://github.com/moreApi/mmCoreAndDevices/tree/extendFakeCam

chat

  • CCameraBase muss impelemntiert werden. Sollte aber egal für die dich sein, da das ja schon geschehen ist.
  • FakeCamera::getImg() ist die eigentlich interessante methode. Die ruft MicroManager auf um ein Bild zu bekommen
    • GetCoreCallback()->GetFocusPosition(focusDepth) sollte dir den z wert des Bildes geben
    • GetCoreCallback()->GetDevice(this, "X")) sollte dir X geben. Für Y dann analog.

building

  • opencv 4 is required
  • opencv_world453.dll and opencv_world453.dll need to be in path
  • issues like "Imcompatile device interface version. requ 70, found 71 " point to version missmatch. (update fork or use older MM version)

test

  • bla
  • fasel
  • bums

Flip image/stack along x/y settings

A setting to flip the display/data of SliceNodes and Stacks along the x or y axis. Has to be changeable at runtime.

Motivation

Those settings might be needed to align virtual and real microscope/stage space. The camera image might be flipped in respect to stage dimensions.

Implementation Ideas:

  • use settings routine to update existing stacks and slices
  • a simple scale.x *= -1 might be already enough. Needs to be tested. Might break something.

Fix: vale input in settings manager copy in microscenery (with java 8?)

The copy of the settings editor in microscenery::core does only work for float value changes. (Not even floats work,) Changes of different typed values break and soft-lock the editor. (Clicking "refresh" unlocks the editor but reverts the change.)

Not sure if java 8 is the culprit here.

Settings Editor

  • refresh button - reloading from settings object
  • save button - write settings object to disk
    • properties saved alphabetically ordered
  • load button - replace content of settings object with content of file
  • type consistency for existing entries
  • default sort by name
  • on value change routines

Fake Cam: simulate noise for out of bounds images

The aim is to improve the microscope emulation. (When the focus is not on a sample )there is always bacground noise that is detected by the sensor.

possebilities:

  • random noise
  • permutation of a given start image
  • sample borders of given volume and exend from there

+ sensible settings options

Vector support for settings

eg. parsing "(0f,1.4,5f)" as a Vector3f

Current workaround is saving each value in as its own setting. There are utility methods for this, also.

Todo list for VR ablation study

VR ablation mock testing

High priority

  • get microscenery on the newest scenery main @skalarproduktraum @moreApi
  • scaling is broken with Zen @moreApi @skalarproduktraum
  • scaling should give feedback on scale parameters (e.g., show 100%, 200%,…) @moreApi
  • volume is hiding menu -Use Text box instead of board? @moreApi
  • Point cloud ablation: eraser still needs to work @moreApi
  • default red on objects looks like shit @skalarproduktraum
  • ablation should be disabled when path is not planned - should this be shown to the user as informational message? @moreApi
  • would like to rotate the volume @moreApi
  • slicing @moreApi
    • allow multiple slicing planes
  • highlight menu text for menu selection @skalarproduktraum
  • menus need to cleaned up @moreApi
    • have both point and path tool available
    • have multiple ablation tools for multiple path
  • tool menu rework @moreApi
    • use fast menus instead of peresistant menus
    • tool menu interaction with tool still in hand does not work
    • center around tool
    • close on tool grab
    • increase radius?
    • open menu only once
    • remember eraser status
  • centrally ablation planning and execution @moreApi
    • connect gui with functionality
  • Bug: holding ablation tool and moving in and out of stage area places an Ink at (0,0,0) @moreApi
  • frame rate is too low, but SteamVR/Quest reprojection seems to cancel that out @skalarproduktraum
    • for lager volumes framerate becomes bad in VR
    • use a ROI? @moreApi
  • take image during ablation and one afterwards (and maybe continue doing so) @moreApi
  • adjust laser power, step size, repeats @moreApi
  • repeats per layer @moreApi
  • move whole ablation plan @moreApi
  • size of ablation point @moreApi
  • merge mainline scenery into @moreApi's evil needed workaround branch (@skalarproduktraum)
  • scroll through previous timpoints
  • switching back from ablation to paint mode does not work properly (@moreApi)
  • updating of new volumes with fresh slices does not work @moreApi
  • controller textures are not loaded (@skalarproduktraum)
  • debug syscon sequence generation and execution

Medium priority

  • show progress (imaging/ablation) (microscope status?)
  • ruler or scale bar tool @moreApi
  • edit display range from VR @moreApi
  • lag when loading data - would async texture loading help here? @skalarproduktraum @moreApi
  • volume rendering should look better @skalarproduktraum
    • validate with actual data vs. demo data @moreApi
  • bounding box should look better @skalarproduktraum
  • letters on the bounding box are too large @skalarproduktraum
  • menu might need better naming @moreApi @skalarproduktraum
  • exceptions when selecting stuff in menu could show the short description of the exception on screen @skalarproduktraum
  • teleportation should use controller angle/balistic trajectory - issue might be moving on different levels @skalarproduktraum
  • make controller touch/collision balls more precise (e.g. use pyramid or cone, have wireframe or otherwise halfway transparent small object as tip) @skalarproduktraum @moreApi
  • introduce imaging and ablation mode @moreApi
    • change man hand context menu accordingly
    • have laser light on or something
  • look down to show help text next to controllers

Nice to have

Rendering SliceNodes correctly independent of camera position

Currently, SliceNodes are only rendered correclty if looked along -Z. From the "back"/along +Z the front nodes are renderd opaque and hide nodes behind them.

Currently they are sorted back to front along z. once a new plane is added. One possible way of solving the issue is to do the sorting dependent on the camera position. That might impact performance.

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.