OpenVGal / 3D web galleries created programmatically (Help welcome !)

I have been working in the last months on a web-based virtual 3D gallery to showcase art or pictures. Currently all is rendered with Babylon. Hopefully in the future the .glb can be created with blender & baked textures.

For users/artists
Any artist can programmatically create halls and navigate them with a first person camera. All is open source and you need to self-host it. The inputs come with a couple of text files and your pictures (of course). It is at a very early stage, so it needs some manual steps and may contain bugs.

You can see an example here:

The repository with the code and instructions can be found here:

For developers
There is a lot to be done to make the process more straightforward. Any help is welcome, the project has a long TODO list.

Your support testing or improving it, it will be greatly appreciated.

[Update May 2023]
Three modes now supported:

  • A hall with a architectural elements and artwork already created (glb file)
  • A hall with the architectural elements and placeholders for the artwork (glb file). Images are loaded on the fly
  • Just images of artwork and material. All is created on the fly (no glb file)

It’s a great idea and something I also had in my mind (and others also gave it a try without great success so far). Though in essence, giving the ability to display artworks/content from a simple template to be generated in your own/personalized 3D gallery/environment can potentially become a great tool and with a little project management effort, it could reach an even larger audience.

OK, let’s face it, this sort of Editor is still a lot of work (and skills) for just one person. So instead of doing this (lucky you :wink:), I decided to create just another static virtual museum demo (project space museum). I’m still working towards the alpha of this project and would want to finalize it,… but then, I was just thinking, may be (if you take it seriously), I will eventually consider embarking on a project of this type and try giving a helping hand where I can and where needed.

As I said, having thought of it a little, I believe all the project would need for a start is to have the ability to select from a number of different environments, with some parameters you can easily modify (later to be improved with more environments and more parameters). Also give the ability to choose from a set of frames and labels (with more added later). And then allow for dynamic/custom sizing and placement of the content. Easier said than done, I know :wink:

The design/FX (lights, volumes and shadows) can also be further improved WITHOUT THE NEED OF BLENDER or a 3D APP for baking the custom layout). I believe it would be important for success, that you can build a convincing personalized environement without the need of diving into 3D modelling and coding. Although, it would still be possible to do so for an advanced usage.
For example, there is this new nine-patch node material base created by patrick ryan that could be applied to the frames to create dynamic shadows on the picture frames. Other node materials and procedural textures could be served to further personalize the scene.

Of course, the camera(s), moves and interactions would also need to be implemented with a number of options/presets. Same for the GUI with a number of presets and a base of a design (that can be further customized)… and the list goes on… so yes, as you say, the todo list at this stage would be still quite long but then I think totally achievable.

I hope this feedback is giving you any insights or ideas. Of course, my opinion only. I will keep an eye on where you are heading with this and meanwhile, I shall wish you have a great day :sunglasses:

1 Like

mawa, thanks so much for the nice feedback !! :heart:
I completely agree that this could def reach a larger audience and there is a need for something like that. The closest thing is what oncyber is doing but it is a propietary environment + why link it only to NFTs?

The great thing is that there could be different ways to get to a .glb file. Currently it is only babylon based. I hope we can have a similar automatic generation with blender, and finally those who want, can hand craft it manually. I assume without baking textures the files would become very large easily, but I could be wrong.

This will not happen without more people joining. Of course if you become the first collaborator it would be so exciting :smiley: I had no clue about babylon or blender a few months ago, so you can guess there are quite some hours in creating what is now in github. I hope that reflects my commitement. It needs to get traction with people really expert on the topics. First priorities IMO should be replace the python part with javascript, robustness and some basic customization.


Very cool idea, I love that you’re making it available for everyone to use :smiley:


did you google “Virtual art gallery free” before starting?

Several tools like this exist , you should look at some others to get an idea of what is already out there and understand the market and perhaps if you continue, then to get ideas for your own developments / understand the general bar of quality to compete with.

I personally dont think there is a great market for these and they dont find much traction unless they are linked to some entity or establishment with a great name already or with a powerful social influence etc but anyway , enjoy your time developing and learning blender and babylonjs along the way.

I think looking at what’s already on the market is good, but unless you’re trying to get investors/launch a professional product it’s not an absolute necessity :slight_smile: Most important is developing something you’re proud of


Well for me even if it was a pet project , I would still go and look to get ideas and at least know what else actually exists in reality related to my ideas for development.

Mostly as mentioned to even get ideas because this can help develop a road map of features you choose to try implement or not , its good to learn from others.

For example , you could just implement clicking on the ground to move the camera viewpoint with no visual marker. Then looking at some other project , you see they used a nice foot marker on the ground surface. Then you think : “hey that’s a smashing idea” Let me try build it into my codebase :wink:

Yes, well I kind of agree with @shaderbytes on this one. I mean it’s sure fun to do but if you really want to make it usable, as I said, it’s also going to take a lot of work, committment and efforts. Eventually, at some point, one would need to turn all these efforts into some kind of return. And yes, there is competition already. Although, I also think there’s still space for improvement and overall the concept is still ‘young’. It’s one thing that solutions exist. It’s another thing that users would 1) know about and 2) convert or commit to these solutions. And this can take years.

Could you give some concrete examples of those tools? you seem to google much better than myself

offers first exhibtion free , professional tool , many environments which you can test right away.

I just googled the search term i mentioned , there are other sites. Most seem to have become products, which makes sense but seem to have a free tier.

But I know there are other projects out there from other devs. , google “VR gallery github” have a look

even websites offering links to alternatives … i have not checked them out , but you should , again most might be products already , but get your ideas here

Then check the github search results for what other free stuff devs are doing

1 Like

Strong claims deserved strong evidence. VR-all-art or other better commercial services ( exhibbit, shapespark, virtualartgallery, etc…):

  • Are not free or you can just have a very limited glimpse for free
  • Are not open source
  • You cannot self-host (you are not the owner of the content, if the site closes your gallery goes away)
  • Are not fully customizable

I like a lot what oncyber offers but they are not open sourcing the platform (i can understand it) for the moment

With regards to github, there are indeed a number of repositories that require you a lot of technical skills, are poorly documented/have no documentation, are visually poor, limited/no customization… VGal, which you might have not looked much in detail, proposes a framework where you define what you want to showcase and the hall structure. How to implement it is left open, can be simple can be complicated and it is fully open source (aren’t we at the forum of an opensource library?). Im providing one gallery builder translating a json file to a .glb, but there may be multiple implementations.

Your comments might have come with the best intentions, plus this is an open forum and things can be criticized. I felt your comments sounded a bit patronizing. Hope you can offer more constructive criticism in the future or even change your mind :wink:

no offense intended , i am a slightly high friction kinda guy but not a complete ass :wink: I personally like a heated debate or objection because the last thing i want is everyone just patting me on the back saying “you’re a winner” which I do kinda see alot of in this community , i guess most people are just better than me :wink: anyway , apologies to you then.

Best wishes for your endeavours

That is true. There are even a (smaller) number of quite convincing galleries created with BJS and which you can find in the demos. They are not all 100% dynamic but some have already a strong base and could be turned into a dynamic virtual gallery.

as penance let me offer some constructive thoughts :wink:

In regards to having a dynamic room builder, while being more versitile it will be very hard to match the speed, quality , performance and ease of use when using static rooms.

Quality : hand crafted models by an artist will always look better than code generated room build by developer with limited art skills. hands down.

Performance : baked lighting for the win.

ease of use/ speed: When a person is looking to just get a few pics in a gallery , having to tinker with build tools to generate a room, params for door widths and heights , params for baking , whatever else will be undesired , I can easily imagine then thinking: " let me just choose a room and upload my images "

You got to think of the end user , while you might say you are targeting developers , from what can be seen from these other sites , their target end user is the artist. So the comparison is not the same really. They offer a product , you offering a build tool. The build tool does produce a product though.

So as a product I see other concerns. For example , are you planning to embed the images in your single file? What about when you want to change just one image? A complete rebuild is required. Also doing staged loading of lower res images and high res images afterwards ( which is a mechanic you see on some of these sites ) is not possible. Everything becomes one massive upfront load.

Anyway these are just off the top of my head , I was actually offering good advice when I said go and look at everything out there. It gives ideas and its sobering, both are good things to work through.

In these beginning phases much prototyping and testing is required. Priorities also need to be established. A good example here is the rooms.

Based on the things I mentioned about dynamic vs static, I would personally put static rooms into the earlier stages/phases of development and make the dynamic room builder be something in a much later stage. Just my opinion



That’s kind of true (in my opinion). And one would need to make the difference between people just being nice and what it is in reality. On the other hand, I think I prefer making friendship with the ‘nice people’ than those who are just challenging, complaining or grinning and in the end… don’t do anything to help me improve things. Again, my opinion only.

i offered some constructive info as penance :wink:

I’m going to make an effort to give thought to not being subliminally condescending or patronizing

i do mean to help in the end , just perhaps my tone and register is not the best

1 Like

Please don’t. I like you the way you are :face_with_hand_over_mouth: :hugs: …and you’re also mostly right (again, in my opinion only).
And, as for me, your posts are always ‘constructive’ and personally, I have you in the category of ‘the good people’. So, I’d say: Don’t change anything :sunglasses:

Yes. This is the part that cought my attention. But then, it’s also the part where I was speaking about ‘project management’ (and overall design thinking). To make this assessment come true for the user (and a user that is not necessarly a developer) there’s a hell of a lot of work behind it. To give you a bit of my background and why I’m saying this, I have been the project manager and creative director on a tool to create powersports dealerships (from scratch, architecture, interior design, layout and communication tools and customer path - all in Unity app). Already giving the ability to create (or reproduce) your architecture and apply the materials is a project on its own. After that, you are just left with an empty room (not a dealership or in this case, a gallery). Reason why, I was also thinking of starting with a number of static environment to choose from (with a level of personalization). And keep the full dynamic building for later. Same as @shaderbytes and aside from the tech aspects, I’m also the kind of guy who would rather first determine the pillars, select a process, target an audience and (try) build on that. When I said ‘it can reach a larger audience’, what I mean is that it doesn’t necessarly have to be work of arts. It could be something else. I.E. Content or branded items/products. My point is it takes a lot of work and efforts to create everything from the environment, interactions, camera behavior, etc… so why limit it to just an art gallery? Knowing that artists are often not those with the most resources.
Also, keeping it opensource is sure nice and in accordance with the BJS spirit and the people in this forum, but then… Eventually, large open source based projects cannot ignore the need to generate resources (if only to maintain and improve the solution). This is all where, I, personally decided not to make a move on with this idea (about 3 years ago) and this is also where I would recommend that you consider the work and efforts to be put into this, and balance it with your expectations in terms of return.

Just to make this clear, I’m not willing to discoureage you (quite the contrary in fact). I simply remember the ~700 lines of ‘must have’ and ‘nice to have’ I had in my todo list for this dealership project (which I believe to be very similar). Though in the end, we did make it (with success) with a team of 10 and within 14-months. So, it’s far from being impossible.


Thanks for your feedback. Some of the topics are described in the github documentation I prepared.

In regards to having a dynamic room builder, while being more versitile it will be very hard to match the speed, quality , performance and ease of use when using static rooms.

I agree and that is OK. The automatic one just fulfill the purpose of having something functional or a starting point to hand-craft it

You got to think of the end user , while you might say you are targeting developers , from what can be seen from these other sites , their target end user is the artist. So the comparison is not the same really. They offer a product , you offering a build tool. The build tool does produce a product though.

I am just offering a v0.1 to demonstrate the concept and share it while i keep on working on it. If a developer loves the idea and he/she thinks that can contribute, great. If an computer savvy artist wants to begin experimenting, great. If somebody can help in some way, great. It’s meant to be a coperative open source developement.

So as a product I see other concerns. For example , are you planning to embed the images in your single file? What about when you want to change just one image? A complete rebuild is required. Also doing staged loading of lower res images and high res images afterwards ( which is a mechanic you see on some of these sites ) is not possible. Everything becomes one massive upfront load.

the rooms are a pre-existing .glb, they contain everything. Rebuilding time (with babylon) is a matter of seconds regenerating them. I dont see any issue. Stage loading (my opinion) is not necessary/priority. A robust download, a progress bar and an efficient glb should be more important. v0.1 has a progress bar but it does not recover a broken download. That is a limitation of babylon. How could the glb be more size efficient?

Yes, I get your point. Currently this is a one (half?) man show, so my list has:

  • item1: get the next next thing done
  • item 2: pool of next things (in the github readme there is a more comprehensive list)

Id be happy to face soon the big problem of … agreeing with other community members on splitting taks and priorities :).

Hi @852Kerfunkle ! Well in fact the v0.1 is what I would call “starting somewhere” :smiley:
To read the contents from NFTs or IPFS links is not a big difference compared to a local image. It is not a technical challenge. I do not see the blockchain integration as a priority. Oncyber already does a pretty good job. In fact what I miss from Oncyber is to include non-NFT content in the virtual spaces.