Giter Site home page Giter Site logo

python-nerte's People

Contributors

kwasniok avatar

Stargazers

 avatar  avatar

Watchers

 avatar

python-nerte's Issues

remove tangent delta

replace by tuple of vector for velocity and vector for acceleration

allow to add vectors to coordinates

redesign miss reasons to reflect hierachy

an enum is not powerfull enough to provide the representation of the hierachy of miss reasons

hierachy is:

  • uninitialized
  • no intersection
  • ray outside manifold
    +---+ray initialized outside of manifold (usefull to analyze embedding of canvas manifold)
    +---+ray reached outside of manifold (usefull to analyze propagation in manifold)

EDIT: Not completely true. Not worth the hasstle.

refine manifold doc

  • cylindrical

  • cylindrical swirl

  • doc is not up to date

  • explicit note for ValueError (coordinate restrictions)

refactor image renderers

  • move failure management to image renderer (failure color etc.)
  • astract pixel rendering via hook mechanism

refactor ray segment into tangential vector

  • ray segment has tangential vector
  • ray segment delta
  • remove ray segment

segment != tangent:
When using Runge-Kutta the next segments position might not differ from the previous by the direction of the previous. This is because the actual segment is curved while the discrete delta is straight. The direction of the previous direction is just the tangent of the curve at that position.

It is important to avoid this confusion.

fix geodesics transformation

The Christoffel symbols do not transform like tensors. This leads to a correction term when dealing with a covariant derivative.

- {\Gamma^\prime}^i_{ab} {u^\prime}^a {u^\prime}^b = \frac{\partial {x^\prime}^i}{\partial x^ j} \left ( -\Gamma^j_{cd} u^c u^d  - \frac{\partial^2 x^j}{\partial x^c \partial {x^\prime}^e} \frac{{x^\prime}^e}{\partial x^d}  u^c u^d\right )

christoffel_correction_term

separate data display from render process

Calculate the (extended) intersection information for each ray first and display it as an image afterwards.
This has the advantage to do post processing and apply filters.

  • separate data display
  • color filter (normal)
  • ray depth filter
  • meta data filter (ray step etc.)
  • remove old renderers after conversion

make miss reason in getter non-optional

is:

IntersectionInfo.miss_reason() -> Optional[MissReason]

should be:

IntersectionInfo.miss_reason() -> MissReason
# precondition: info.misses() == True
# raises RuntimeError

change camera location to focal point

Define a focal point instead of the camera's location, since the latter is not well defined in arbitrary/curved geometries.

Added alternative projection mode: obscura in 0f1cbf7

Obscura is physically more plausible but might also more difficult to to set up a scene with.

complete cross product

linalg.cross needs completion

requires knowledge of:

  • metric
  • contra-variant transformation of vectors

extend cylindrical swirl manifold tests

add test cases for swirl != 0

  • fixed values for geodesic equation
  • coordinate transformation
  • vector transformation
  • tangential vector transformation
  • plane properties

part of #42

fix transformation direction for manifolds

The choice of the swirl parameter is currently inconsistent. Make "-a" the flat to swirled transformation and "+a" the inverse transformation.

Let p be a point in space. It is represented by cand s in flat and swirled coordinates respectively.
Let f_a(c) = s, then f_a maps the flat angle phi to the swirled alpha = phi - a *r * z.

The original mistake came from confusing active and passive transformation and assumed alpha = phi + a *r * z.

  • cylindrical swirl
  • cartesian swirl

part of: #52

optimize cartesian swirl manifold

see POSSIBLE-OPTIMIZATION comments

  • Christoffel symbols of first kind are symmetric in two indices. This can be used to reduce the resource usage.

add ray step renderer

  • add image render filter which displays the amount of ray steps used until a surface was hit similar to the render ray depth mode
  • add statistics to support the visual feedback
  • requires step count as optional property of intersection info

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.