Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (523)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (592)
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 LIVE v2 - live visual / coding env  (Read 2037 times)
0 Members and 1 Guest are viewing this topic.
Offline nsigma
« Posted 2014-08-31 10:02:38 »

Some of you may already know about Praxis LIVE, an open-source project I've been working on for some time.  Praxis LIVE is a mix of visual patching environment for audio/video (think Quartz Composer, Isadora, etc.) with coding in Java and GLSL.  Everything is editable live, including code - an embedded compiler is used to inject Java code on-the-fly into a running project without missing a frame (or beat).



Over the last few months I've been working on the next major iteration of Praxis LIVE.  I have just uploaded the second alpha release and it would be great to get some testing feedback, constructive criticism, etc.

Major new features in v2 include -

  • Revised OpenGL renderer based on Processing v2 (so now switched from LWJGL to JOGL - hi Julien! Wink ).
  • Custom code API now provides most of the methods from Processing, and a video:gl:p3d component gives you almost complete access to the 3D features of the underlying library.
  • Embedded compiler infrastructure upgraded from Janino to a custom build of javac, giving full access to Java 7 features (8 will come later)
  • New custom coding infrastructure using annotations to inject ports / controls as variables in your code.
  • New code editor with full code completion, error highlighting, etc. (based on top of the NetBeans editor)

Existing features include

  • Range of built-in components for audio & video processing.
  • Video input and playback components with GStreamer (native libs for Windows and OSX included)
  • Low-latency audio pipeline with DSP in Java (including JACK bindings)
  • Create custom GUI's on-the-fly, or control any parameter / variable with MIDI or OSC
  • Bindings for working with TinkerForge - sensors, servo control, etc.
  • Loosely actor-model architecture designed from ground up for working with multiple media.

Coming soon for final v2!

  • All built-in components to be based on new custom code API - if the built-in component doesn't do what you need, fork it on-the-fly.
  • Run projects across multiple VMs - initially locally for better performance; across a local network after that.

What can you use it for?

Or, is this relevant to game developers?  Wink  Well, that slightly depends on how wide your view of "gaming" is - I personally use it for creating interactive play-things in public spaces, such as this.  I know various people who've used it for VJing.  You could use it as a live code sketchbook, playing with Java or GLSL.

Downloads

You can download a pre-built Praxis LIVE from http://www.praxislive.org - look for the testing release.

The source code is all up at https://github.com/praxis-live

You'll need the praxis and praxis-live repositories if you want to build it, as well as a copy of NetBeans 8.


I hope this project excites some of you as much as it excites me - to everyone else, apologies for the noise!  Grin  Best wishes, Neil

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline lcass
« Reply #1 - Posted 2014-08-31 22:33:33 »

Saw this and just thought it looked awesome . Definitely going to use this.
Offline nsigma
« Reply #2 - Posted 2014-09-01 08:01:30 »

Saw this and just thought it looked awesome . Definitely going to use this.

Thanks! Cheesy Let me know how you get on.  I didn't publicise the first alpha beyond some known users, so be interesting to hear back on what does or doesn't work for you, or what feels confusing.  There is a manual for v1, but it's not been updated for v2 yet - should still help get you started.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline lcass
« Reply #3 - Posted 2014-09-01 08:36:14 »

Ok thanks , ill have a play around with it when I wake up Smiley
Offline CommanderKeith
« Reply #4 - Posted 2014-09-01 14:01:58 »

I downloaded the latest test build and it worked well.
Would be good if it came pre-loaded with a cool demo project that would play some music and make a video with GLSL just to show off the features.
Impressive for how you were able to borrow some code from netbeans. Was it difficult to integrate? I've also experimented with the swing code editor JSyntaxPane but found it to be unreliable and always wanted to know how hard it would be to borrow the editor from netbeans or eclipse.
Cheers,
Keith

PS: The older version 131206 didn't work when I started it. Just an opening splash screen and then it died, with the process disappearing on the task manager. Windows 7, intel i7.
Also I tried downloading the example zip file (examples 120620.zip) but couldn't figure out how to load it. When I did import project from zip, it popped an error dialog saying "entry anImageFileName already exists. Replace, change....". Then it failed to add the project. Unzipping it manually and trying to load as a project didn't work either since it wouldn't let me select the unzipped examples folder or any sub folder.

Offline nsigma
« Reply #5 - Posted 2014-09-01 16:46:09 »

I downloaded the latest test build and it worked well.

Great, thanks, good to know.

Would be good if it came pre-loaded with a cool demo project that would play some music and make a video with GLSL just to show off the features.

Agreed(ish).  Some more up-to-date and more exciting examples are definitely needed.  I'm less sure about packaging them in the install unless I can make some without many resources - the installer for the new version will be big enough already.

I presume you tried the New Custom and Smoky 3D examples on the Resources page?

Impressive for how you were able to borrow some code from netbeans. Was it difficult to integrate? I've also experimented with the swing code editor JSyntaxPane but found it to be unreliable and always wanted to know how hard it would be to borrow the editor from netbeans or eclipse.

Praxis LIVE is based on the NetBeans platform (in fact, it's in the showcase) so integrating the editor wasn't too difficult, though connecting everything up so that it treats the in-memory class body as an actual Java file was fun!  persecutioncomplex  If you're not building on top of the NetBeans RCP, I'm not sure I'd even attempt to use the editor - there used to be a separate library available but not for some time.  Not sure how usable the Eclipse editor is outside its platform either.

In the depths of time I used JSyntaxPane too, but for the last few years the editor in Praxis LIVE was RSyntaxTextArea. I'd recommend it if you're looking for a lightweight code editor component, and it has some additional code completion support (though not as good as a full IDE editor, hence my switch).

PS: The older version 131206 didn't work when I started it. Just an opening splash screen and then it died ... Windows 7, intel i7.

But I bet not Java 7!  Wink  Unfortunately 131206 is not compatible with Java 8.  Not my fault - there's a bug in NetBeans platform 7.2 - that version of the IDE doesn't work with Java 8 either.  I'll be glad when I can consider Praxis LIVE v2 stable enough to remove the 131206 download.

Also I tried downloading the example zip file (examples 120620.zip) but couldn't figure out how to load it.

After unzipping externally it should recognise all the subfolders (01 Hello World, etc.) as projects which can be opened.  Huh  Also, in case you got this far, remember to restart the hub (red circular arrow) between trying to run each example.

The project zip / unzip menu items are from the underlying platform, and may be more trouble than they're worth at the moment.  I'll do some testing with them prior to the next release, and if they're not proving that useful will hide them.

Thanks for your input, Neil

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline CommanderKeith
« Reply #6 - Posted 2014-09-02 02:08:42 »

Also I tried downloading the example zip file (examples 120620.zip) but couldn't figure out how to load it.

After unzipping externally it should recognise all the subfolders (01 Hello World, etc.) as projects which can be opened.  Huh  Also, in case you got this far, remember to restart the hub (red circular arrow) between trying to run each example.

The project zip / unzip menu items are from the underlying platform, and may be more trouble than they're worth at the moment.  I'll do some testing with them prior to the next release, and if they're not proving that useful will hide them.

Thanks for your input, Neil
Aha! cool, yep the examples work now that I open them as projects. The video input and blob examples were cool, they grabbed the video from my laptop camera just fine. How did you do that? What java lib can get access to the video camera so easily?
Thanks for letting me know about RSyntaxPane, it looks much better than JSyntaxPane  Cool
I couldn't figure out how to edit the code in the 'live coding project', there wasn't any button next to the properties of the code element.
The GLSL example just showed a blank window, but I couldn't turn on the openGL pipeline since only the 'Software Renderer' was available in Tools/Options/Video.
New Custom and Smoky 3D were good. Would be nice to see a demo with an animation of flashing lights or something which is sync'ed with the bass of a song.
Cheers,
Keith

Offline nsigma
« Reply #7 - Posted 2014-09-02 09:10:23 »

Aha! cool, yep the examples work now that I open them as projects. The video input and blob examples were cool, they grabbed the video from my laptop camera just fine. How did you do that? What java lib can get access to the video camera so easily?

That's GStreamer with the GStreamer-Java bindings.  There's an old thread on here somewhere with code to use GStreamer with LWJGL (GstLwjgl) - you appear to have appreciated it at the time!  Wink

I couldn't figure out how to edit the code in the 'live coding project', there wasn't any button next to the properties of the code element.

Ah, that's a change in this alpha release - to edit code now you need to right-click on the component (header) in the graph window and choose Edit code from the popup menu.  You can edit shader code the same way.  The code will open in a separate editor tab - every time you save the code file it will be re-compiled.  Quite a few of the components in the new examples can have code edited in that way - eventually it will be possible to edit the code of most of the built-in components.

You can also double-click components to open properties in a separate window, if you haven't found that yet - useful to keep them accessible while editing code.

The GLSL example just showed a blank window, but I couldn't turn on the openGL pipeline since only the 'Software Renderer' was available in Tools/Options/Video.

Another change in v2.  There should be a message showing at the bottom of that option window.  Renderer setting has been moved into the 'root' settings for the video patch.  Open that project, click build (you can't change renderer while it's running), open the video.pxr file in the graph, click the button next to play in the editor toolbar to open the 'root' properties, and change the renderer there.

New Custom and Smoky 3D were good. Would be nice to see a demo with an animation of flashing lights or something which is sync'ed with the bass of a song.

Yes, I'll put something together  - in fact, the logo and splash screen are stills from a project that does pretty much that.  The audio sequencer example is doing animation based on audio levels too, though it's only drawing shapes.

This video is quite fun http://youtu.be/MFkG1yE3oJQ - done by a VJ from Australia.  It's using an external FFT program to control a shader in Praxis LIVE via MIDI.  At some point I'll get around to adding in an FFT component.

You may also want to check out the Praxis LIVE video playlist - http://youtu.be/n2OOZsY-mj0?list=PLGCnxrNN7cdAEcR30a6Iq7c9HhDUSJrre  - they're a bit old now, though - I'll get some more up-to-date videos done soon.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline gouessej
« Reply #8 - Posted 2014-09-05 23:14:53 »

Hi

Revised OpenGL renderer based on Processing v2 (so now switched from LWJGL to JOGL - hi Julien! Wink ).
We can mention your application in the homepage of JOGL if you want.

Offline nsigma
« Reply #9 - Posted 2014-09-07 15:37:03 »

Just released a minor bug-fix update that addresses a couple of issues with correct saving of custom code in the last snapshot.

Praxis LIVE v2 snapshot build:140905 Download | Release notes

We can mention your application in the homepage of JOGL if you want.

Thanks, that would be great!  Smiley You'll probably want to make sure that it refers to v2 though - the current stable v1 release is still using LWJGL.  I've just edited some links on the site to explicitly refer to v1 & v2 to avoid any confusion.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline nsigma
« Reply #10 - Posted 2014-11-06 16:10:24 »

A slightly belated update that a new alpha release is now available, which finally brings distributed hubs into Praxis LIVE.  There are two primary reasons for this - running pipelines in different local processes to reduce GC timing effects (eg. on low-latency audio), and running and working with pipelines running on different machines across a local network.  Read more about it in this blog post.

Here's me editing Java & GLSL code on one laptop while it runs on another laptop.



 .. which does give me one idea that might be useful around here - live-coding GLSL shaders on multiple machines at the same time to test on different graphics cards / OS?

Get it while it's hot,
Praxis LIVE v2.0a3-141101 Download | Release notes

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

« JGO Bitwise Duke »


Medals: 271
Exp: 5 years



« Reply #11 - Posted 2014-11-06 20:41:41 »

Sick. I really need to invent a project to do that involves the use of this.  Pointing

And hey, I have that lenovo too!
Offline nsigma
« Reply #12 - Posted 2014-11-06 21:18:15 »

Sick. I really need to invent a project to do that involves the use of this.  Pointing
Thanks!  You seen this?  It's what I use it for, anyway.  Grin

And hey, I have that lenovo too!
Awesome laptop, and means I can test on Intel and Nvidia easily.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Pages: [1]
  ignore  |  Print  
 
 

 

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

The first screenshot will be displayed as a thumbnail.

SHC (22 views)
2014-11-25 12:00:59

SHC (20 views)
2014-11-25 11:53:45

Norakomi (18 views)
2014-11-25 11:26:43

Gibbo3771 (22 views)
2014-11-24 19:59:16

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

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

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

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

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

kovacsa (67 views)
2014-11-07 19:57:14
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!