#jogamp @ irc.freenode.net - 20160901 05:05:11 (UTC)


20160901 05:05:11 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20160831050510.html
20160901 05:05:11 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20160901050511.html
20160901 06:27:29 * elect (~elect@anon) has joined #jogamp
20160901 06:28:44 <elect> hi
20160901 07:51:52 * monsieur_max (~maxime@anon) has joined #jogamp
20160901 08:58:34 * guillaum1 (~gl@anon) Quit (*.net *.split)
20160901 08:58:34 * zubzub (~zubzub@anon) Quit (*.net *.split)
20160901 08:58:40 * bruce- (~x@anon) Quit (*.net *.split)
20160901 08:58:49 * i-make-robots (~dan@anon) Quit (*.net *.split)
20160901 08:58:54 * bigpet (uid25664@anon) Quit (*.net *.split)
20160901 08:59:00 * rmk0 (~rmk0@anon) Quit (*.net *.split)
20160901 08:59:01 * elect (~elect@anon) Quit (*.net *.split)
20160901 09:03:16 * elect (~elect@anon) has joined #jogamp
20160901 09:03:16 * bigpet (uid25664@anon) has joined #jogamp
20160901 09:03:16 * i-make-robots (~dan@anon) has joined #jogamp
20160901 09:03:16 * bruce- (~x@anon) has joined #jogamp
20160901 09:03:16 * guillaum1 (~gl@anon) has joined #jogamp
20160901 09:03:16 * zubzub (~zubzub@anon) has joined #jogamp
20160901 09:03:16 * rmk0 (~rmk0@anon) has joined #jogamp
20160901 10:03:17 <elect> i-make-robots, the jogl vive hello vr is ready
20160901 13:52:02 * juank_prada (~juank_pra@anon) has joined #jogamp
20160901 14:02:28 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160901 14:13:08 * juank_prada (~juank_pra@anon) has joined #jogamp
20160901 15:06:13 * elect (~elect@anon) Quit (Read error: Connection reset by peer)
20160901 15:08:08 * elect (~elect@anon) has joined #jogamp
20160901 15:39:43 <elect> I'd like to share this with you
20160901 15:39:44 <elect> https://github.com/java-graphics-society
20160901 15:40:27 <elect> we created an organization to collaborate in developing java tools
20160901 15:40:41 <elect> hoping to fuse all the energies together
20160901 15:45:29 <bruce-> nice
20160901 15:46:24 <bruce-> I still have a lot of stuff to document, but there is this really nice framework that I have been developing for our studio
20160901 15:51:25 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20160901 16:09:13 * elect (~elect@anon) Quit (Ping timeout: 265 seconds)
20160901 16:40:36 * elect (~elect@anon) has joined #jogamp
20160901 16:41:38 <elect> bruce-, it'd be cool if you would like to move it there
20160901 16:41:56 <elect> what are talking about btw? Can you link?
20160901 16:42:13 <bruce-> I don't have anything visible for public now :(
20160901 16:42:24 <elect> framework for what exactly?
20160901 16:43:10 <bruce-> sort of does what processing does, without forgetting about Java's langauge features
20160901 17:13:35 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160901 17:15:54 * juank_prada (~juank_pra@anon) has joined #jogamp
20160901 17:23:59 * monsieur_max (~maxime@anon) has joined #jogamp
20160901 17:30:48 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160901 17:49:13 * i-make-robots (~dan@anon) Quit ()
20160901 18:02:09 * elect (~elect@anon) Quit (Ping timeout: 260 seconds)
20160901 18:17:40 * juank_prada (~juank_pra@anon) has joined #jogamp
20160901 18:33:54 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160901 19:01:42 * juank_prada (~juank_pra@anon) has joined #jogamp
20160901 19:12:09 * gouessej (5279ca63@anon) has joined #jogamp
20160901 19:12:27 <gouessej> Hi
20160901 19:13:40 <gouessej> elect: Sorry to be harsh but there is already JogAmp and I still don't get why you chose JNA and you expect some help to develop competing APIs that you promote here
20160901 19:14:37 * gouessej (5279ca63@anon) Quit (Client Quit)
20160901 19:47:16 * elect (~elect@anon) has joined #jogamp
20160901 20:00:39 <elect> hi julien, no offense :)
20160901 20:00:57 <elect> jogamp is the library I do use
20160901 20:01:43 <elect> I didnt choose jna, I picked the most promising java openvr binding and use that as a base to develop on and enhance
20160901 20:02:29 <elect> I don't have any preferences about those tools
20160901 20:02:53 <elect> I am not promoting lwjgl, I am promoting tools for java
20160901 20:03:02 <elect> glm, gli, assimp, openvr
20160901 20:04:03 <elect> they are not competing against jogl, they work in symbiosis and they are fundamental in order to make graphic development on java (and jogl in particular) serious
20160901 20:04:14 <elect> this is my point of view
20160901 20:05:40 <elect> I strongly believe that if we want jogl to success, we should first continuing developing it
20160901 20:05:51 <elect> upgrade the forum
20160901 20:05:56 <elect> and write tutorials about it
20160901 20:06:02 <elect> all things I am pushing
20160901 20:06:17 <elect> as you know
20160901 20:06:20 <elect> :)
20160901 20:14:48 <elect> just to say, I wrote an hello vr sample in jogl
20160901 20:15:32 <elect> I got 52 clones in 10 days
20160901 20:20:23 <zubzub> that's actually pretty nie
20160901 20:20:26 <zubzub> *nice
20160901 20:22:52 <elect> this bloody faggots just clone
20160901 20:23:02 <elect> nobody watching or starring
20160901 20:23:05 <bruce-> newt needs clipboard support :)
20160901 20:23:18 <elect> I feel used ^
20160901 20:23:46 <elect> zubzub, I am still dreaming you are joining glm dev sooner or later
20160901 20:23:59 <elect> and make it less crap as it is now
20160901 20:24:23 <elect> I know you know
20160901 20:26:08 <zubzub> glm?
20160901 20:26:15 <elect> the math lib
20160901 20:26:19 <zubzub> oh yeah
20160901 20:26:20 <zubzub> that one
20160901 20:26:22 <elect> :D
20160901 20:26:28 <elect> cmon
20160901 20:26:38 <elect> it'll be fun \o/
20160901 20:26:48 <zubzub> the thing is I'd have little benefit for it myself
20160901 20:26:57 <zubzub> while my time is already so prrrrecccious
20160901 20:27:01 <elect> I can image
20160901 20:27:25 <zubzub> I should be working on porting javafx to wayland
20160901 20:27:28 <elect> that why I will be tremendous thankful if you could only point me in the right direction
20160901 20:27:30 <zubzub> but here I am
20160901 20:27:38 <zubzub> waiting for witcher 3 blodo and wine to finish dlding
20160901 20:27:38 <elect> like 1) dont do that, 2) do that
20160901 20:28:25 <zubzub> I'm not sure I'd be your man for glm
20160901 20:28:32 <zubzub> you want to create bindings for it?
20160901 20:28:39 <zubzub> or (re)create it based on the original?
20160901 20:28:44 <elect> latter
20160901 20:29:11 <zubzub> I'm not sure what I could add(?)
20160901 20:29:24 <zubzub> it shoul be straightforward math no?
20160901 20:29:32 <zubzub> besides I hardly know glm at all
20160901 20:30:01 <elect> I am sure one of the main reasons we have still so much graphic dev on C/C++ is because of tools lacking
20160901 20:30:10 <elect> and those pussies are scared
20160901 20:30:16 <elect> experience?
20160901 20:30:21 <elect> it should be
20160901 20:30:35 <elect> but I still code spaghetti
20160901 20:30:43 <zubzub> true
20160901 20:30:45 <zubzub> :p
20160901 20:30:48 <elect> ^^
20160901 20:31:15 <rmk0> there are more than enough vector/matrix algebra libraries for java already
20160901 20:31:20 <zubzub> don't worry though, the jdk and even new present day jdk features are a big bowl of spaghetti
20160901 20:31:26 <zubzub> yeah but they all suck
20160901 20:31:40 <zubzub> they aim to be real math libraries
20160901 20:32:02 <zubzub> and not focus on the 3by3 or 4by4 matrices
20160901 20:32:08 <zubzub> same for vectors
20160901 20:32:26 <elect> I know rmk0, but if you are used to glm, you will have less resistance to switch to java if there is an equivalent tool
20160901 20:33:17 <zubzub> btw remember the whole javafx jogl integration problem?
20160901 20:33:35 <zubzub> I think you can "fix" it by implementing javafox on newt
20160901 20:34:12 <rmk0> http://io7m.github.io/jtensors/
20160901 20:34:21 <bruce-> if newt had clipboard support, yes
20160901 20:34:23 <zubzub> so under the hood javafx would then simply use newt to do all its things
20160901 20:34:49 <zubzub> bruce-: you can add what's lacking for specific platforms (to newt or javafx)
20160901 20:35:07 <bruce-> if I weren't stupid and busy
20160901 20:35:19 <zubzub> I'm just busy so there's that :p
20160901 20:35:37 <elect> rmk0, didnt you move that to github=
20160901 20:35:39 <elect> ?
20160901 20:35:43 <bruce-> just compiling jogl and newt is someting that makes me feel dumb
20160901 20:35:52 <rmk0> elect: it's... on github
20160901 20:36:05 <rmk0> it's a github.io address, hard for it not to be on github
20160901 20:36:25 <elect> you are right too
20160901 20:37:10 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20160901 20:39:00 <rmk0> my favourite bit is the phantom types
20160901 20:39:05 <rmk0> saved my sanity too many times to count
20160901 20:40:13 <elect> I got 16 pages result by phantom >.>
20160901 20:40:53 <rmk0> https://wiki.haskell.org/Phantom_type
20160901 20:41:16 <rmk0> use the type system (java generics are good enough) to apply "tags" at the type level to values
20160901 20:41:47 <rmk0> i use it in rendering code to statically guarantee that matrix multiplications happen in the right order and the like
20160901 20:41:50 <rmk0> https://github.com/io7m/r2/blob/develop/io7m-r2-core/src/main/java/com/io7m/r2/core/R2Matrices.java#L148
20160901 20:42:25 <rmk0> if you have a matrix of type M<A, B> and another of type M<B, C> then multiplying them together gives you a matrix of type M<A, C>
20160901 20:42:46 <rmk0> if you get the arguments in the wrong order, you get a type error instead of weird results at runtime
20160901 20:43:07 <rmk0> inverting a matrix of type M<A, B> gives you a matrix of type M<B, A>, etc
20160901 20:43:21 <rmk0> can push it surprsingly far even with java's limited generics
20160901 20:43:39 <rmk0> erasure obviously guarantees that it has no runtime cost, too
20160901 20:44:25 <elect> what do you mean by "arguments in the wrong order"?
20160901 20:44:36 <rmk0> well matrix multiplication isn't commutative
20160901 20:44:39 <rmk0> a * b != b * a
20160901 20:44:50 <rmk0> it's extremely easy to mix up the order of arguments
20160901 20:44:56 <elect> if B from m0 is not the same of B from m1?
20160901 20:45:19 <rmk0> not... sure what you mean
20160901 20:46:16 <elect> matrix of type M<A, B> and another of type M<B, C>
20160901 20:46:31 <elect> m<2, 3> * m<3, 4>
20160901 20:46:43 <rmk0> you've misunderstood
20160901 20:46:52 <elect> I guess
20160901 20:46:56 <rmk0> the type parameters have no value-level representation whatsoever
20160901 20:47:01 <elect> you are talking about multiplication order
20160901 20:47:05 <rmk0> i am
20160901 20:47:37 <rmk0> consider what a usual transform matrix is... it's conceptually a transform that takes a vector that's in coordinate space A to coordinate space B
20160901 20:47:58 <elect> yes
20160901 20:48:32 <rmk0> so you can represent that at the type level
20160901 20:48:45 <rmk0> interface R2SpaceWorldType { }
20160901 20:48:46 <elect> uh
20160901 20:48:51 <rmk0> interface R2SpaceEyeType { }
20160901 20:48:59 <elect> I got it
20160901 20:48:59 <rmk0> those are types that represent the various coordinate spaces
20160901 20:49:06 <rmk0> PMatrixDirect4x4FType<R2SpaceWorldType, R2SpaceEyeType>
20160901 20:49:18 <rmk0> is obvious just by looking what that matrix does
20160901 20:49:58 <elect> but space representation is just for us
20160901 20:50:04 <rmk0> it's just for the type checker
20160901 20:50:05 <elect> I mean, we can have x spaces
20160901 20:50:12 <rmk0> urhur
20160901 20:50:15 <elect> although the famous are a few
20160901 20:50:25 <rmk0> even better... you can define matrix/vector multiplication such that it'll refuse to multiply vectors that aren't in the right space
20160901 20:50:42 <rmk0> https://github.com/io7m/jtensors/blob/develop/io7m-jtensors-core/src/main/java/com/io7m/jtensors/parameterized/PMatrixM4x4F.java#L598
20160901 20:51:12 <rmk0> takes a matrix that moves vectors from space T0 to T1, and a vector in space T0, and yields a vector in space T1
20160901 20:51:17 <elect> and has no runtime cost?
20160901 20:51:24 <rmk0> none
20160901 20:51:46 <rmk0> it's what people talk about when they say that generics are erased
20160901 20:51:51 <bruce-> I like this
20160901 20:52:01 <rmk0> although usually it's phrased as a complaint because you can't do anything with generic parameters with reflection
20160901 20:52:28 <rmk0> bruce-: has saved me so much time... every time i see a type error, it feels like "well, that's an hour of debugging avoided"
20160901 20:52:46 <rmk0> is very common to do this sort of thing in languages like haskell, but it hasn't seen mainstream adoption yet
20160901 20:53:22 <rmk0> i'm not aware of it having been used in this context (matrices, etc)... maybe i'm the first
20160901 20:53:57 <rmk0> is particularly important in graphics work where pretty much all mistakes lead to silent failure
20160901 20:54:30 <bruce-> do you also tag your vectors?
20160901 20:54:39 <rmk0> yeah
20160901 20:56:27 <rmk0> the downside to this is duplication of code in libraries
20160901 20:56:43 <rmk0> in the vector library, i mean... i had to supply parameterized and non-parameterized versions
20160901 20:56:47 <rmk0> i can live with that
20160901 21:01:09 * elect (~elect@anon) Quit (Ping timeout: 265 seconds)
20160901 21:46:27 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160901 21:46:59 * juank_prada (~juank_pra@anon) has joined #jogamp
20160901 21:51:25 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 252 seconds)
20160902 00:48:20 * juank_prada (~juank_pra@anon) has joined #jogamp
20160902 00:53:09 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 265 seconds)
20160902 03:19:56 * juank_prada (~juank_pra@anon) has joined #jogamp
20160902 03:24:12 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 244 seconds)
20160902 05:05:11 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20160902050511.html