SciTechPlayroom

Hello folks

I am a hobbyist 3D programmer who is getting on in years (79 of them!). I have messed around with interactive 3D graphics from the early DOS/Windows95 days until the present with its overwhelming supply of advanced 3D game engines. The engines I have worked with have been PowerRender (obsolete), 3DRad (obsolete), Esenthel (too expensive), Unity (too heavy), and my own DirectX11 based engine. All of these have been based on C++ Windows platforms. The physics engines I have used have been PhysX and Bullet.

Enough background history… and fast forward to the present:
This last year I ventured into the JavaScript ThreeJS web 3D framework.
The interactive 3D content and rendering is excellent, but it lacks a good inbuilt physics engine. Also, being a C++ programmer, I found the JavaScript a little getting used to.
Recently I came across Godot4.4 with its inbuilt Jolt physics engine. This engine appealed to me… and hence my current situation.

I have found that the way to quickly get to grips with a new engine is to port the old stuff (that you know works well on previous engines) over to the new engine or framework. A project that I have been working on and off for a number of years is called ā€œThe SciTech Playroomā€, and is the project I have chosen as my first Godot endeavour. Basically, it involves a simple room with a work table on which the player can conduct interactive science experiments and technical demonstrations. For this to be realistic, a primary requirement is a good physics engine.

I would like to use this Forum’s Showcase/In-Development platform to try and keep folk simply updated on my progress. Please bear in mind that this will NOT be a detailed DevLog and I spend very little time on advanced graphics modelling and rendering. My focus is mainly on the physics engine interactivity. At my age, I am a great believer in the KISS principle!

I attach my first video which will serve to give background on the environment of the room and how the player/camera moves around it, as well as how the whiteboards on the walls of the room can display user instructions, graphics and videos.
I might just add that my experience in creating Youtube videos is very limited, so no sound included!

Over the next few months, I will be posting videos outlining the various pieces of interactive apparatus that will be used to demonstrate
STEM (Science,Technical,Engineering,Math) projects which seem to be the trend in the Educational field in these present confusing times.
I welcome simple advice, helpful comment and ideas in this regard.

The manipulation of small rigidbody objects is an important requirement for this project. The picked objects have to be manipulated smoothly (using mouse and keyboard) with no jittering.
The following video partly demonstrates this concept by placing and balancing different weight rigidbody objects on a rigidbody seesaw, hinged to its staticbody support via a Jolt physics engine HingeJoint. The weights used are 2 x 250gm, 2 x 500gm and 1 x 1000gm.
The same video also demonstrates interaction with a selected rigidbody by means of using keyboard keys to rotate that body around its local
X, Y or Z axes.

As can be seen from the items currently on the work table, I have been experimenting with a train of gears driven by a motor.
Also, I’m looking at creating rope/cord which can be picked up and moved. I would also like to see it

  1. looping two pulleys
  2. being wound onto a motor-driven winding drum

I will keep this platform updated with successes, failures and problems in this regard.

11 Likes

Why is my post showing the written video link, and not the actual video?

26/09/2025: This query of mine has now been successfully answered by Frozen Fried on Forum Feedback

2 Likes

That’s strange. Can you see the video or the link?

1 Like

I see my youtube video link as text.
Only by clicking on it can a user get the actual video.
I was expecting to see the video already displayed, as is the case with all posts on this forum.
Must be something I’ve done wrong in YouTube Studio?

1 Like

In your message, the links look like text (links), but in mine, they look like videos. Did you use any tags?

2 Likes

Did you use any tags?

Im not sure what tags you mean?
I followed the YouTube Studio instructions on uploading my videos to YouTube for checking
They checked out ok, and I made sure that my videos could be embedded
I was given a text video link which I saved to my clipboard.
I was instructed to paste the link into my forum post.
I did so using forum hyperlink option.
Thats all, and no joy :frowning:

Perhaps someone can explain how they get their videos to display automatically?

I guess it’s best to wait for a response from forum support. I just copied and pasted your link as text, and it displayed the video itself.

1 Like

Thats good advice… thanks tomcat

26/09/2025: This query of mine has now been successfully answered by Frozen Fried on Forum Feedback

1 Like

First post all links, this one shows two embedded video previews,
Edit : exactly what Tomcat said.
Cheers !

Could it be because it’s a relatively new account ? Wasn’t or is there a limit on posting embedded URLs on new accounts ?
I seem to recall something like that…

1 Like

I have a very simple method of keeping myself updated on my progress…
At the beginning of my main script I have a TODO list which I keep up to date as each item is accomplished successfuly. I try not to jump ahead until each item has been consecutively completed. Any hurdles along the way I make a brief note of, and concentrate my efforts in attempting to overcome them before I proceed further.
Here are screenshots of my progress to date:



3 Likes

I built a long length of cord using the Godot Editor. The cord is made up of 60 capsule-shaped RigidBody3D segments joined to each other via Generic6DOFJoint3D joints.

The cord has to be long so that I can wind it around the two pulleys, as shown in my very rough sketch below:


(I find it useful to keep a wad of scrap paper next to me to take the odd note and draw rough sketches and flowcharts while I’m busy)

Here is a video of a successful attempt to manoever the cord over the top pulley of my crude piece of apparatus. This was after a number of tries, as the higher one lifted the cord the more the weight of the overall cord increased, due to the mass of each segment coming into play, as it was no longer lying on the table. Eventually the weight of the cord counter balanced the force required to move the cord, and the cord slipped to the table surface. I’ve partly solved by this problem by reducing the mass of each segment, reducing the gravity contribution, and making grabpoint/anchorpoint yellow sphere larger.

At the end of the video i show the heavy wrecking ball fastened to a short length of thick rope.

One can also see a motor driving a set of intermeshed gearwheels. The overall ratio of the number of gear teeth on each gearwheel determines the speed and strength of the final gear’s output ( i.e. the lower the speed, the higher the strength) Note that each gear is made of gear teeth comprising capsule rigidbody collision shapes.

I will be spending the next few days (hopefully, not weeks) getting the pulley and cord apparatus working.

3 Likes

A frustrating day spent with a long length of cord and two pulleys!

This was worse then threading a needle… many attempts at getting the cord (or rather, wriggling snake) to pass under the bottom pulley and over the top pulley.
The video shows my final attempt for the day.

There must be an easier method of putting this together… any ideas are welcome.

Here, I tried to explain, in a very simplified way, why a game engine is not suitable for real physical simulation.

https://forum.godotengine.org/t/characterbody3d-falling-through-floor-under-specific-circumstances-related-to-falling/112368/5

Use deception, imitation.

I get what you’re saying, tomcat, but I’m not quite ready to give up on the Jolt physics engine just yet.
I’d really like to get this working using real physics and will be experimenting further in that regard.

1 Like

Then, I suppose you need to at least significantly increase the speed of physics processing. That will put a heavy load on the computer.

Ive just come across a very interesting (for me) website oPhysics with the title oPhysics: Interactive Physics Simulations. The simulations are all in 2D, but I’m keen to attempt converting them to 3D for use in this SciTechPlayroom project.
I now have a real target to aim for… so we’ll see how that goes over the next months :slight_smile:

2 Likes

@ACF3D

oPhysics was fascinating and as far as I can tell it has the physics spot on too.

It inspired me to finally have a play with the physics engine and OMG, after a bit of fiddling around I am so impressed with it! I am now incorporating smashable buildings in my prototype game, it is so much fun I can already feel an Angry Birds clone in my near future!

As @tomcat said though, It is certainly true that you will only be imitating physics, not really simulating it.

Your 3D Lab (as I think of it) is very interesting though. You could certainly turn this into a kind of learning game with level challenges for difficulty. For instance a simpler scene with the weighing scales and several weights challenge like ā€œUse all the weights and balance themā€. Or for gravity, get the moon to orbit the planet seven times. Or apply a force to the meteor to make it hit a planet (orbital mechanics perhaps of some sort). Or apply a rocket thrust to get into geostationary orbit. Or something with pendulums. IDK but I am sure you can come up with some involving bridges, earthquakes, orbits, electrical circuits or whatever.

I look forward to playing your physics game - good luck. And thank you for getting me to finally start using the physics engine!

PS If you really are 79 I am impressed! I thought I was the oldest person on here - clearly not, you beat me by a quarter of a century!

PPS Your chain is very impressive. Did you do it with links between rigid bodys? I am going to try to imitate it so do you have any tips about it before I plough in! I am going to dangle a grappling hook from my players ship if I can get it to work nicely.

2 Likes

Im glad that you had a ā€˜Damascus Road’ experience, and I would hope that others will have such an experience if they could spend a little more time playing around with applying the physics engine capabilities to their projects. Its great fun, when you know how! :slight_smile:

Your list of project ideas is a reproduction of all those that have been rattling around in my head over the last 40 years, but never progressed to completion due to life’s higher prorities.
Hopefully, I now have time to concentrate on proceeding. In this regard, my ultimate goal is to use all my various physics-based pieces of apparatus to build ā€˜Rube Goldberg’ (Google him) machines. (Basically it involves triggering a series of chain reactions to accomplish a task which would be far easier to simply do with your two hands)

Yes, each segment of the rope is a rigidbody comprising a capsule shaped collision body and a textured capsule mesh, linked to second such segment via a Generic6DOFJoint3D. These are then ā€˜duplicated’ to obtain instances of as many segments your rope requires. (see some of the pics in this post). Much of this is just trying out various parameters, testing and running (thank goodness for the excellent Godot Editor !). Keep the mass of your rigdbody segments and their gravity scale low. Ensure all your segments accurately line up vertically, making use of the segments ā€˜Transform’ x,y,z positions.

1 Like

I’m very happy !
After much testing and adjustments I’ve at last got my non-optimised ā€˜pulley and rope’ system working (after a fashion :slight_smile: )

No deception here… I just wanted to convince myself that I could get it working using the physics engine alone.

Some actions I took since my last videoed effort:

  1. Cleared all the interfering clutter from the table top
  2. Used pulleys with holes in them so that I could see if they were turning.
  3. Made the rope dynamic anchor points bigger (the yellow spheres) so that I could grasp them easier, without the various forces loosening the grip (causing them to fall and dragging the rope with). This was also to assist in initially threading the rope, in real time, over the pulley grooves.
  4. Adjusting masses and gravity scale
  5. Placing helper markers (the grey rods lying on the table top) so that I could line up the rope with the pulley grooves (difficult to see the ā€˜Z’ positions from the front view)

This was just a very enjoyable and frustrating (similar to a computer game :slight_smile: ) proof of concept, and I am no longer going to spend any more time on this particular topic.

5 Likes