Balloon3D - dead or alive?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Balloon3D - dead or alive?

timrowledge
Over the weekend I had a go at building the B3DAccelerator plugin for the Pi (with all sorts of fun in the process) and eventually got something that compiled, linked and appeared to have built.

To test it I tried to load the Balloon3D package but the one accessible in SqueakMap is *ancient* and although I did manage to get it installed with lots of hackery, and the basic rotating cube *did* finally run with no hardware acceleration, an attempt to swap to using hardware failed.
So far as I can work out we’re not routinely building the ‘Squeak3D’ plugin anymore? Is anyone still caring for the B3D stuff? The latest SM version is over 10 years old :-O

Is there somewhere other than SM I might find an up to date version - or indeed anything else that would test the B3DAcceleratorPlugin?

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
A computer program does what you tell it to do, not what you want it to do.



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

Bert Freudenberg
On 16.11.2015, at 22:36, tim Rowledge <[hidden email]> wrote:
>
> Over the weekend I had a go at building the B3DAccelerator plugin for the Pi (with all sorts of fun in the process) and eventually got something that compiled, linked and appeared to have built.
>
> To test it I tried to load the Balloon3D package but the one accessible in SqueakMap is *ancient* and although I did manage to get it installed with lots of hackery, and the basic rotating cube *did* finally run with no hardware acceleration, an attempt to swap to using hardware failed.
> So far as I can work out we’re not routinely building the ‘Squeak3D’ plugin anymore? Is anyone still caring for the B3D stuff? The latest SM version is over 10 years old :-O

Balloon3D (and hence the Squeak3D plugin) has pretty much gone the way of the dodo.

But B3DAcceleratorPlugin is still used to create an OpenGL context, e.g. in Croquet.

> Is there somewhere other than SM I might find an up to date version - or indeed anything else that would test the B3DAcceleratorPlugin?

Install OpenGL from here:

        http://www.squeaksource.com/CroquetGL.html

and try “OpenGL example”.

- Bert -






smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

David T. Lewis
In reply to this post by timrowledge
On Mon, Nov 16, 2015 at 01:36:24PM -0800, tim Rowledge wrote:
> Over the weekend I had a go at building the B3DAccelerator plugin for the Pi (with all sorts of fun in the process) and eventually got something that compiled, linked and appeared to have built.
>
> To test it I tried to load the Balloon3D package but the one accessible in SqueakMap is *ancient* and although I did manage to get it installed with lots of hackery, and the basic rotating cube *did* finally run with no hardware acceleration, an attempt to swap to using hardware failed.
> So far as I can work out we???re not routinely building the ???Squeak3D??? plugin anymore? Is anyone still caring for the B3D stuff? The latest SM version is over 10 years old :-O
>
> Is there somewhere other than SM I might find an up to date version - or indeed anything else that would test the B3DAcceleratorPlugin?
>

It has always been part of the "standard" unix releases up through the
last one the Ian published on squeakvm.org. I don't recall ever having
fixed any 64-bit issues for this, which means that it probably does not
work on 64-bit host. However, I expect that it should still be healthy
on 32-bit platforms.

I'm not sure the best way to test it on a recent image, but if you
have an older image with B3D stuff, try running it on the latest
32-bit interpreter from squeakvm.org/unix. If that does what you need,
then the plugin is in good shape and probably will just need some
updates for 64-bit host. I'd be happy to try doing those updates if
there is an interest.

Dave
 

Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

timrowledge
In reply to this post by Bert Freudenberg

> On 16-11-2015, at 2:04 PM, Bert Freudenberg <[hidden email]> wrote:
> Balloon3D (and hence the Squeak3D plugin) has pretty much gone the way of the dodo.
>

Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?


> But B3DAcceleratorPlugin is still used to create an OpenGL context, e.g. in Croquet.
>
>> Is there somewhere other than SM I might find an up to date version - or indeed anything else that would test the B3DAcceleratorPlugin?
>
> Install OpenGL from here:
>
> http://www.squeaksource.com/CroquetGL.html
>
> and try “OpenGL example”.

OK, loaded easily enough and the example shows that the plugin is not working. It responds to the primitiveVersion ok but creating a gl context fails. I’ll poke it into gdb some day.

It’s nice to see vectors and quaternions in there though. Might help me with the damnably complex IMU in the Pi SenseHAT.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: EROS: Erase Read-Only Storage



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

timrowledge
In reply to this post by David T. Lewis

> On 16-11-2015, at 2:10 PM, David T. Lewis <[hidden email]> wrote:
>
> It has always been part of the "standard" unix releases up through the
> last one the Ian published on squeakvm.org. I don't recall ever having
> fixed any 64-bit issues for this, which means that it probably does not
> work on 64-bit host. However, I expect that it should still be healthy
> on 32-bit platforms.


So it is; and the context of where I found the code locally implies it at least used to build on the Pi. The platforms/Cross code is still in the Cog tree, too.

I’m puzzled where the code is coming from Dave; I just peeked at the plaint VMMaker package and it doesn’t include the B3DEngine classes, so what are you doing to produce it? Or is it simply being inherited in the SVN tree?

It’s probably not worth pursuing too hard if no one is able to nor interested in keeping the Balloon3D stuff alive as well.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Bad command or file name.  Go stand in the corner.



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

David T. Lewis
On Mon, Nov 16, 2015 at 03:55:44PM -0800, tim Rowledge wrote:

>
> > On 16-11-2015, at 2:10 PM, David T. Lewis <[hidden email]> wrote:
> >
> > It has always been part of the "standard" unix releases up through the
> > last one the Ian published on squeakvm.org. I don't recall ever having
> > fixed any 64-bit issues for this, which means that it probably does not
> > work on 64-bit host. However, I expect that it should still be healthy
> > on 32-bit platforms.
>
>
> So it is; and the context of where I found the code locally implies it at least used to build on the Pi. The platforms/Cross code is still in the Cog tree, too.
>
> I???m puzzled where the code is coming from Dave; I just peeked at the plaint VMMaker package and it doesn???t include the B3DEngine classes, so what are you doing to produce it? Or is it simply being inherited in the SVN tree?
>

We have B3DAcceleratorPlugin, which is generated directly from the class of
the same name, and we have Squeak3D which is generated from B3DEnginePlugin
and its subclasses. I think you are interested in Squeak3D. The module name
is Squeak3D because:

  B3DEnginePlugin class>>moduleName
      ^'Squeak3D'

The primitives are generated from its six subclasses, all of which inherit
the module name 'Squeak3D'. The tricky bits are done in these two methods:

  B3DEnginePlugin class>>translateInDirectory:doInlining:
  B3DEnginePlugin class>>shouldBeTranslated

Latest generated sources are at
  http://squeakvm.org/cgi-bin/viewvc.cgi/squeak/trunk/src/plugins/Squeak3D/

> It???s probably not worth pursuing too hard if no one is able to nor interested in keeping the Balloon3D stuff alive as well.

I can't think of any good reason not to keep it working.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

timrowledge

> On 16-11-2015, at 6:47 PM, David T. Lewis <[hidden email]> wrote:
>>
>
> We have B3DAcceleratorPlugin, which is generated directly from the class of
> the same name, and we have Squeak3D which is generated from B3DEnginePlugin
> and its subclasses.

Well yeah - but thus far I’m not seeing B3DEngine and it’s subclasses in either the ‘plain’ VMMaker or the VMMaker.oscog… Ah! Now I see what’s happening; you use a mcm config file and it includes Balloon3d-* OK. Solved. I wonder if it will work when loaded into a cog build…


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Advanced design: Upper management doesn't understand it.



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

Bert Freudenberg
In reply to this post by timrowledge
On 17.11.2015, at 00:28, tim Rowledge <[hidden email]> wrote:
>
>
>> On 16-11-2015, at 2:04 PM, Bert Freudenberg <[hidden email]> wrote:
>> Balloon3D (and hence the Squeak3D plugin) has pretty much gone the way of the dodo.
>
> Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?

By now CPUs are fast enough that the B3D software renderer (in the Squeak3D plugin) should be quite speedy. And some of the old demos have been quite neat. Remember the 3D bunny circling *behind* a Morphic window? Or the whole Wonderland animation system.

But software rendering takes lots of power to make even a very simple (i.e. unrealistic) 3D rendering. It doesn’t scale to modern pixel densities. So we would still need the B3D acceleration scheme to make it run on modern screens (my laptop has 5 MPixels!)

One advantage of Balloon3D is that it can use both OpenGL and Direct3D. But maybe OpenGL support is now good enough even on Windows? I don’t know, I’m not a Windows user.

In the end, using OpenGL directly is way more flexible (and better documented).

- Bert -

>> But B3DAcceleratorPlugin is still used to create an OpenGL context, e.g. in Croquet.
>>
>>> Is there somewhere other than SM I might find an up to date version - or indeed anything else that would test the B3DAcceleratorPlugin?
>>
>> Install OpenGL from here:
>>
>> http://www.squeaksource.com/CroquetGL.html
>>
>> and try “OpenGL example”.
>
> OK, loaded easily enough and the example shows that the plugin is not working. It responds to the primitiveVersion ok but creating a gl context fails. I’ll poke it into gdb some day.
>
> It’s nice to see vectors and quaternions in there though. Might help me with the damnably complex IMU in the Pi SenseHAT.
>
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Strange OpCodes: EROS: Erase Read-Only Storage
>
>
>



smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

David T. Lewis
In reply to this post by timrowledge
On Mon, Nov 16, 2015 at 09:12:50PM -0800, tim Rowledge wrote:

>
> > On 16-11-2015, at 6:47 PM, David T. Lewis <[hidden email]> wrote:
> >>
> >
> > We have B3DAcceleratorPlugin, which is generated directly from the class of
> > the same name, and we have Squeak3D which is generated from B3DEnginePlugin
> > and its subclasses.
>
> Well yeah - but thus far I???m not seeing B3DEngine and it???s subclasses in
> either the ???plain??? VMMaker or the VMMaker.oscog??? Ah! Now I see what???s
> happening; you use a mcm config file and it includes Balloon3d-* OK. Solved.

Right, the MCM config pulls in a variety on things, including externally
maintained plugins. The SqueakMap entry uses this MCM config, and evaluating
"VMMaker updateFromServer" does an update similar to the trunk update stream.

By the way, with an up to date (trunk) Squeak, it should now be possible
to define an update stream for oscog in the VMMaker repository. If you
save an update map with the name 'update.oscog' in the VMMaker repository,
then borrow the VMMaker class>>updateFromServer method (edited to refer
to 'update.oscog' rather than 'update'), it should be good to go.

> I wonder if it will work when loaded into a cog build???
>

I expect that it will work.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

Stéphane Rollandin
In reply to this post by timrowledge
> Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?

I would vote for a rescue...

Stef



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

Alan Grimes-3
Stéphane Rollandin wrote:
>> Ah, sad. If anyone is interested, it can actually be loaded with some
>> hassle and that rotating cube does work, so maybe it could be
>> rescued? Is is worth it?
>
> I would vote for a rescue...
>
> Stef

=|

It was supposed to have been supplanted by Cobalt/Croqet which would
have been the logical replacement for the ancient 1990's legacy squeak
we have except for being abandoned a decade ago. =(

--
IQ is a measure of how stupid you feel.

Powers are not rights.


Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

timrowledge
In reply to this post by Stéphane Rollandin

> On 17-11-2015, at 8:08 AM, Stéphane Rollandin <[hidden email]> wrote:
>
>> Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?
>
> I would vote for a rescue…

Well, is it the best answer? What else has been done to use 3D with an option for hardware acceleration? Croquet/Cobalt is still out there but doesn’t seem to get a lot of action so far as I can see.

There’s also the Rome/Cairo/Pango stuff for 2D - though according to the squeaksource.com/Rome repository there isn’t anything newer than ~jan 2007. And then there’s Nile/Gezira; can we actually use that?

We seem to be sitting on a pile of treasure and not doing anything with it. I’d love to find out I’m wrong and that there is a nice easy to load package that will amaze me.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Not much to show for four billion years of evolution.



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

Stéphane Rollandin
>>> Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?
>>
>> I would vote for a rescue…
>
> Well, is it the best answer?

Sorry, I thought you asked.

Stef


Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

timrowledge

> On 18-11-2015, at 12:52 PM, Stéphane Rollandin <[hidden email]> wrote:
>
>>>> Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?
>>>
>>> I would vote for a rescue…
>>
>> Well, is it the best answer?
>
> Sorry, I thought you asked.

I did indeed. The question is really which - if any - of the possible frameworks should we try to rescue, adopt, improve, release, whatever? There’s only so much time that people can spend and for most of this sort of thing probably only  a few people that have a clue what to do (oh-oh, I’m flashing back to the 70s, does anyone know the way?)

The answer is most likely that the ‘winner’ is whatever someone can get enthused about enough to get working.


Good news - I managed to build the Squeak3D plugin for the Pi, it runs, it appears to execute decently! The very basic demo of the rotating cube rotates nicley, the ‘turn on hardware acceleration’ button causes it to run more smoothly, a FrameRateMorph shows that even on a mere Pi it is not overtaxing the system, and all the other simple demos work. The only one I spotted that slows us below 48fps was commented as taxing because it is plotting a complex 3D surface from an equation with complex colouring.

I did try the Wonderland stuff and although I was able to get a basic Wonderland Morph open (and very small since screens are *so* much bigger now) but crashed the VM when trying … something I can’t remember. Basically it was chomping memory and a Pi only has so much to give. There were complaints logged in ‘Squeak3D.log’ about "OpenGL initialization failed - No OpenGL visual found” which may I guess mean that in fact all or some of the plugin wasn’t really working - it’s some error in sqUnixOpenGL.X11 for the curious.

Ah, try again; I can use the command menus to make the camera nad ground turn around but getting the halo for the ground goes into some recursive navel-gazing and crashes.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SNARF: System Normalize And Reset Flags



Reply | Threaded
Open this post in threaded view
|

Re: Balloon3D - dead or alive?

Bruce O'Neel-2
Fantastic, this is excellent!

19 novembre 2015 02:41 "tim Rowledge [via Smalltalk]" <[hidden email]> a écrit:

> On 18-11-2015, at 12:52 PM, Stéphane Rollandin <[hidden email]> wrote:
>
>>>> Ah, sad. If anyone is interested, it can actually be loaded with some hassle and that rotating cube does work, so maybe it could be rescued? Is is worth it?
>>>
>>> I would vote for a rescue…
>>
>> Well, is it the best answer?
>
> Sorry, I thought you asked.

I did indeed. The question is really which - if any - of the possible frameworks should we try to rescue, adopt, improve, release, whatever? There’s only so much time that people can spend and for most of this sort of thing probably only  a few people that have a clue what to do (oh-oh, I’m flashing back to the 70s, does anyone know the way?)

The answer is most likely that the ‘winner’ is whatever someone can get enthused about enough to get working.


Good news - I managed to build the Squeak3D plugin for the Pi, it runs, it appears to execute decently! The very basic demo of the rotating cube rotates nicley, the ‘turn on hardware acceleration’ button causes it to run more smoothly, a FrameRateMorph shows that even on a mere Pi it is not overtaxing the system, and all the other simple demos work. The only one I spotted that slows us below 48fps was commented as taxing because it is plotting a complex 3D surface from an equation with complex colouring.

I did try the Wonderland stuff and although I was able to get a basic Wonderland Morph open (and very small since screens are *so* much bigger now) but crashed the VM when trying … something I can’t remember. Basically it was chomping memory and a Pi only has so much to give. There were complaints logged in ‘Squeak3D.log’ about "OpenGL initialization failed - No OpenGL visual found” which may I guess mean that in fact all or some of the plugin wasn’t really working - it’s some error in sqUnixOpenGL.X11 for the curious.

Ah, try again; I can use the command menus to make the camera nad ground turn around but getting the halo for the ground goes into some recursive navel-gazing and crashes.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SNARF: System Normalize And Reset Flags





If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Balloon3D-dead-or-alive-tp4861352p4861862.html
To start a new topic under Squeak - Dev, email [hidden email]
To unsubscribe from Squeak - Dev, click here.
NAML