Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (522)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (590)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Praxis - InterMedia System  (Read 5988 times)
0 Members and 1 Guest are viewing this topic.
Offline nsigma
« Posted 2010-12-15 11:57:34 »

Well, I've finally got around to putting a binary build of my project Praxis up at http://code.google.com/p/praxis/  Whether the project as a whole is of interest may depend on quite how wide your definition of games is  Smiley , but as this forum has been a great help I thought I'd at least post it here.

So, what is it??? Praxis is a framework for playing with a range of media (video/image, audio, MIDI, etc).  I use it for creating interactive things in real physical spaces, as well as occasionally for audio(-visual) performances.  You can get a rough sense of what I mean from this video (http://video.google.com/videoplay?docid=-1631892283027158552) - an interactive space using webcam movement detection to control audio and image (this was actually created with Praxis's predecessor), or this performance (http://www.youtube.com/user/richardbolam#p/u/1/1zZfSWjcWAI - second one in).

At its heart, Praxis satisfies two needs I had.  Firstly, it's a framework based around a loose mix of dataflow / actor model, allowing proper communication back and forth between various media threads (synchronized really is evil in this scenario!).  Secondly, it's completely configurable at runtime - it has it's own simple scripting language which hides all the complexity of passing messages back and forth, and also uses Janino to allow embedded fragments of Java code.

As a whole it's GPLv3 (to satisfy various dependencies).  However, I'm trying to release various modules from it under more liberal licences where possible (either GPL w/CPE or LGPL).  At the moment, there's various audio server and audio processing stuff under more liberal licences, as well as a binding for the JACK audio library using JNA.  There should be more to come - the audio routing library could probably be with CPE too.  Although everything's built as a NetBeans module, as Praxis uses the NetBeans runtime container, only the player module depends on NetBeans API's so the library JARs should just work.

It's still got a way to go.  Next on the list is a hardware accelerated video pipeline (using Slick most likely), better live coding API and a graphical patcher environment.  Oh, and better documentation  Smiley

Feedback is appreciated, but feel free to ignore if it's not your thing!  Tongue

Best wishes,

Neil

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline nsigma
« Reply #1 - Posted 2011-06-25 10:25:23 »

Well, due to the overwhelming interest this provoked last time!  Tongue

Just a quick note to say that I've put up a first release of the graphical patcher-style environment for Praxis at http://code.google.com/p/praxis/  The live-coding API has had some improvement too.

I realise that the project as a whole may only have limited interest to people on here, but some of the libraries that make it up (thinking particularly the low latency JavaSound stuff) might - the project is highly modular, so it's possible to just drag these JARs out, but I'll aim to get some separate downloads and docs up in the near(ish) future.

Praxis is developed and tested on Linux - most things should be cross-platform, but YMMV with the GStreamer and JACK support.

Best wishes,  Neil

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline ra4king

JGO Kernel


Medals: 355
Projects: 3
Exp: 5 years


I'm the King!


« Reply #2 - Posted 2011-06-25 12:47:44 »

Looks really neat! Great job Smiley

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline nsigma
« Reply #3 - Posted 2011-12-02 11:40:37 »

A third early-access build of Praxis LIVE is now available for download from http://code.google.com/p/praxis/  This release includes the start of OpenGL support (based on LWJGL, with a bit of code “borrowed” from libGDX), a new Settings API, and improvements to the Projects system, as well as a range of smaller improvements and bug fixes.

A first beta release is planned for (hopefully!) the end of the year, bringing graphical editing of control panels (GUIs) and MIDI bindings, improved OpenGL support, a range of new audio, video & control components, and improved documentation.  Features planned that may not make it into the first beta, though work has started, include support for live-coding GLSL video effects, and the ability to export Praxis LIVE projects as standalone applications.

Read the full release notes - http://code.google.com/p/praxis/wiki/ReleaseNotes



The most exciting bit for me is finally getting into implementing the OpenGL renderer. Above you can see a live webcam image of yours truly disintegrating into over 10,000 particles using the OpenGL pipeline. The particle code is live-compiled Java inside a code component, all editable on the fly and using a subset of the Processing API. Once more ops are hardware accelerated, what's there is more optimised, and it’s possible to get live-compiled GLSL shaders in there too, this could get fun!  Grin

Also interesting is that even though the OpenGL pipeline falls back to the software renderer for a lot of Ops, when doing things where nothing is accelerated apart from the blit to screen it still seems better than the software pipeline using BufferStrategy.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline gouessej
« Reply #4 - Posted 2011-12-02 12:09:18 »

The most exciting bit for me is finally getting into implementing the OpenGL renderer.
It is rather a LWJGL renderer.......

Offline nsigma
« Reply #5 - Posted 2011-12-02 12:24:23 »

The most exciting bit for me is finally getting into implementing the OpenGL renderer.
It is rather a LWJGL renderer.......

I'm beginning to think you're just a bot that pops up in any thread that mentions LWJGL.  Kiss You could have just as accurately said it's a Java renderer or a (heavily hacked) libGDX renderer.  What exactly is your point???  That JOGL exists - I KNOW!!!!  I had to make a decision one way or the other, and after weighing up the options I plumped with LWJGL (which of course you disapprove of).  The Praxis renderer could be refactored to use JOGL or any other binding very easily - direct references are only in a few classes - but until I have a compelling reason it's staying as it is.

Praxis also uses JNA for other things, which I know you also have some irrational fear of ...  Wink

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline gouessej
« Reply #6 - Posted 2011-12-02 12:58:04 »

I'm beginning to think you're just a bot that pops up in any thread that mentions LWJGL.  Kiss You could have just as accurately said it's a Java renderer or a (heavily hacked) libGDX renderer.  What exactly is your point???  That JOGL exists - I KNOW!!!!  I had to make a decision one way or the other, and after weighing up the options I plumped with LWJGL (which of course you disapprove of).  The Praxis renderer could be refactored to use JOGL or any other binding very easily - direct references are only in a few classes - but until I have a compelling reason it's staying as it is.
According to someone else, I'm Stallman's bot. According to you, I'm a JOGL bot. I only pointed out some inaccurate words about your renderer and I'm coherent, I have never written that I use any OpenGL renderer because there is a difference between using OpenGL and using a Java binding of OpenGL as a Java binding contains some features about windowing system (as far as I know neither LWJGL nor JOGL contains a complete binding of GLUT). I'm not a bot, I'm a human being, I may disagree with some JGO members, it does not mean that I'm a silly bot, I may have some real reasons to disagree with them.

Praxis also uses JNA for other things, which I know you also have some irrational fear of ...  Wink
It is not irrational, you have just forgotten my rational objections especially about less good performances than JNI, I spoke about the mechanism used by JNA on Microsoft Windows... I don't fear JNA, I just don't use it, I prefer using GlueGen.

Offline nsigma
« Reply #7 - Posted 2011-12-02 13:38:07 »

I'm beginning to think you're just a bot that pops up in any thread that mentions LWJGL.  Kiss You could have just as accurately said it's a Java renderer or a (heavily hacked) libGDX renderer.  What exactly is your point???  That JOGL exists - I KNOW!!!!  I had to make a decision one way or the other, and after weighing up the options I plumped with LWJGL (which of course you disapprove of).  The Praxis renderer could be refactored to use JOGL or any other binding very easily - direct references are only in a few classes - but until I have a compelling reason it's staying as it is.
According to someone else, I'm Stallman's bot. According to you, I'm a JOGL bot. I only pointed out some inaccurate words about your renderer and I'm coherent, I have never written that I use any OpenGL renderer because there is a difference between using OpenGL and using a Java binding of OpenGL as a Java binding contains some features about windowing system (as far as I know neither LWJGL nor JOGL contains a complete binding of GLUT). I'm not a bot, I'm a human being, I may disagree with some JGO members, it does not mean that I'm a silly bot, I may have some real reasons to disagree with them.

Actually, I find your wording inaccurate because you're mixing up renderer and windowing system.  

Praxis also uses JNA for other things, which I know you also have some irrational fear of ...  Wink
It is not irrational, you have just forgotten my rational objections especially about less good performances than JNI, I spoke about the mechanism used by JNA on Microsoft Windows... I don't fear JNA, I just don't use it, I prefer using GlueGen.

JNA is slightly slower than raw JNI, but performance is never the only consideration - if it was we wouldn't be using Java!  Wink  Bear in mind we're talking about call overhead, which should be swamped by code that actually does something in any real world use.  Not using yourself is one thing - explicitly refusing to use anything that uses it whether it works or not is irrational.

If I remember what you said correctly, your comments about JNA on Windows were completely inaccurate anyway!

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline gouessej
« Reply #8 - Posted 2011-12-02 23:11:40 »

Actually, I find your wording inaccurate because you're mixing up renderer and windowing system.  
I don't mix up anything as JOGL and LWJGL have their own windowing system and they can still interoperate with AWT and Swing. My wording was intentionally accurate. Actually, when using a renderer relying on these bindings, you mainly have the choice between using the windowing systems or toolkits provided by Java itself or using their windowing system... except if you really want to create a binding of GLUT or if you prefer using directly the windowing system of a given platform. What's wrong with that?

If I remember what you said correctly, your comments about JNA on Windows were completely inaccurate anyway!
I remind you that I had spoken about Microsoft Platform Invoke (which is used by JNA on Microsoft Windows) and its bad impact on performances in the C# binding of OpenGL in OpenTk (previously in Tao Framework). Sorry for the off topic.

Offline SimonH
« Reply #9 - Posted 2011-12-03 05:53:21 »

<humour>
So there's these three blokes sat in a pub when suddenly one of them jumps up and starts shouting abuse at the other two. He becomes more and more enraged til he finally takes off his hat and chews at it in frustration before throwing into the face of one of the other two.
"Well, that's out of order!" says the bloke who was hit, and the third one says: "Don't mind him, he's just got a bad hat he chewed!"
</humour>

People make games and games make people
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline nsigma
« Reply #10 - Posted 2011-12-03 10:08:57 »

@gouessej

Thanks for derailing my thread!  Cranky  I understand, and am already aware, of the points you're making.  However, I still intend to use the term "OpenGL renderer".  Even if the term "LWJGL renderer" might be more accurate at this particular time, and I still disagree that it is, I don't think it's in any way more understandable to people here or the project's wider audience.  It's not like I'm hiding the fact that it's implemented with LWJGL.  Other projects in the same space (Field / Processing) using JOGL also use the term OpenGL renderer, though interestingly Field is currently converting to LWJGL.

In regards to JNA, it has nothing to do with Platform Invoke, which AFAIK is a CLR technology anyway.  JNA is implemented using libffi.  Still, I know you've already been told this ...  Roll Eyes

@SimonH

Thanks for lightening the mood around here!  Grin  Perhaps a case of mercury poisoning?!

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline gouessej
« Reply #11 - Posted 2011-12-03 12:39:42 »

Libffi has been removed from Mono for performance reasons (see r724) as far as I know and it uses the same underlying mechanism that Microsoft P/Invoke which is used in OpenTk.

Offline nsigma
« Reply #12 - Posted 2011-12-03 13:35:53 »

Libffi has been removed from Mono for performance reasons (see r724) as far as I know and it uses the same underlying mechanism that Microsoft P/Invoke which is used in OpenTk.

The only thing I can find on that suggests it was removed in 2001!  Are we really taking over 10 year old performance as accurate of today, because ... gee ... this Java thing ain't half slow!  Wink

If you really want to argue the merits either way of all this, please start a new thread.  I only mentioned JNA in the first place because I knew it was the other choice you'd disapprove of!  Personally, I'll use what works best for me - which means easy to develop and deploy as well as good performance.  Unless or until I or anyone else has a specific performance issue with Praxis or the various libs being released from it, then I have no interest in changing.  And I'd rather help contribute to making JNA faster, which (in a minor way) I've just done!

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline nsigma
« Reply #13 - Posted 2012-06-21 13:57:12 »

Well, a new release of Praxis LIVE is up at http://code.google.com/p/praxis/



Highlights include
  • a live-coding GLSL component
  • a range of other new components, including new audio effects (chorus / flanger / reverb)
  • cross-platform capture / webcam support (Linux been there for a while)
  • optional GStreamer plugin for Windows (32/64bit) that doesn't require a system install (should be adaptable for any Java project)

Blog post about the release - http://praxisintermedia.wordpress.com/2012/06/21/praxis-live-build120620/

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline Cero
« Reply #14 - Posted 2012-06-21 14:07:53 »

this is obvious coming from me of course...
But if I want to just display video cutscenes in my game.
Without the user having to install anything, and running on all 3 platforms,
is Praxis a viable solution to do this ?
and if so, how hard would that be ?

Offline nsigma
« Reply #15 - Posted 2012-06-21 14:15:26 »

this is obvious coming from me of course...
LOL  Grin
But if I want to just display video cutscenes in my game.
Without the user having to install anything, and running on all 3 platforms,
is Praxis a viable solution to do this ?
and if so, how hard would that be ?

Praxis is about a 100x more (code and features) than you need for that.  The GStreamer plugin might be useful to look at in terms of bundling GStreamer.  Only slight issue is that the GStreamer build from Processing I used is the GPL one - you'd have to manually remove the GPL plugins in there.  You'd also have to remove the one NetBeans platform reference (used to work out the library folder) and also extract the GStreamer libs from the plugin download.

The plugin source is in the ext repo - http://code.google.com/p/praxis/source/browse?repo=ext

Why not download Praxis and the plugin and see if it works for you?

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline sproingie

JGO Kernel


Medals: 202



« Reply #16 - Posted 2012-06-22 04:55:32 »

I tried "New Project", and click the "Next" button ... and nothing happens.  The "Open Project" button and menu item also do nothing.  Sad

Offline nsigma
« Reply #17 - Posted 2012-06-22 07:12:29 »

I tried "New Project", and click the "Next" button ... and nothing happens.  The "Open Project" button and menu item also do nothing.  Sad

hmm .. I can't reproduce that, and a few other people have been fine too.

A few questions -

 * What OS and JRE/JDK are you on?
 * Does the popup menu in the Project tab also not work?
 * Does deleting your Praxis configuration directory (details at the bottom of the release notes online) help?
 * Zip distribution or installer?
 * Have you used NetBeans on that setup? (Praxis pretty much uses the NetBeans project system as is)
 * Anything show up in View / IDE log?

Thanks, Neil

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline nsigma
« Reply #18 - Posted 2012-07-11 15:22:19 »

Praxis LIVE build 120711 is now available to download for Windows users only. It fixes an issue with Java 7 that only affects Windows users (so there isn't an additional Linux / OSX release).

@sproingie - didn't hear back from you, but wondered if that's the cause of your issue too?


Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline sproingie

JGO Kernel


Medals: 202



« Reply #19 - Posted 2012-07-11 16:42:35 »

The updated version seems to have fixed the issue.  Now to learn how to use this contraption Smiley
Offline nsigma
« Reply #20 - Posted 2012-07-11 17:12:42 »

The updated version seems to have fixed the issue.  Now to learn how to use this contraption Smiley


Great! Be interested in your thoughts. Still in heavy development so suggestions for new features very welcome.

I'd tested Windows on Java 6, but weird NPE on Java 7. It's an issue with the NetBeans platform, but found a workaround.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline nsigma
« Reply #21 - Posted 2012-07-18 18:55:44 »

Finally got around to documenting what's supported in the live-coding components in Praxis, based on a subset of the Processing API with some important additions to allow integration with the Praxis environment.

http://code.google.com/p/praxis/wiki/LiveCodeAPI

Now getting on with a short manual - documentation is currently not Praxis' best point!  Wink

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline nsigma
« Reply #22 - Posted 2012-07-25 15:06:11 »

Set up an Ohloh profile for Praxis LIVE - http://www.ohloh.net/p/praxis-live.  Some of the stats are interesting to have - some are hilarious (time/cost)!  Grin

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

trollwarrior1 (29 views)
2014-11-22 12:13:56

xFryIx (71 views)
2014-11-13 12:34:49

digdugdiggy (50 views)
2014-11-12 21:11:50

digdugdiggy (44 views)
2014-11-12 21:10:15

digdugdiggy (38 views)
2014-11-12 21:09:33

kovacsa (62 views)
2014-11-07 19:57:14

TehJavaDev (67 views)
2014-11-03 22:04:50

BurntPizza (64 views)
2014-11-03 18:54:52

moogie (80 views)
2014-11-03 06:22:04

CopyableCougar4 (80 views)
2014-11-01 23:36:41
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!