I need discourse with Mr. Doob

I require meaningful discourse with Mr. Doob. Upon completion of said discourse I firmly believe that Mr. Doob will provide me with a pint of my choosing delivered to my door. It is in regards to the marriage of three.js and a data centric platform agnostic abstraction layer. This is nearly complete. Complete scenes with population of one row of ANSI compliant SQL.

1 Like

Does this need to be embedded into three? I’m curious what you need the owner for.

I think as a noob that 3d Modeling is somewhat difficult. I took all of the settings I could find, and abstracted them into a database. This means someone can simply add a row with some basics filled out, and create an entire 3D scene. It also makes the shipping of a scene little more than a few bytes of data to populate the row. In addition, you can have thousands of models stored, and traverse the database with ease recreating the scenes on the fly. The goal here is for mr. doob to buy me a beer. Nothing more. Well, maybe more. How about we put this to work for all of us to make some money for this hobby that eats countless hours of our time???

It is not about embedding anything into the library. It is an abstraction layer. In other words, instead of writing any code, you simply populate one database row for an objects and settings. All the materials, opacity, geometry, everything is a record in a table. Even the environment texture…You just populate it with what you would write in code. So, for instance, modeling a planet…You just upload your particular equirectangular projection image, and set a few values and hit save. Your 3D scene is then rendered; you require ZERO knowledge of the underlying libraries, javascript, or even that THREE.JS exists at all. It lets people create sophisticate things without the requisite underlying learning and knowledge we all had to go through. I even abstracted out all the data required to define an arbitrary orbit of say a planet, or a satellite…All material settings, geometry settings. Spin rates…

This is how it is applied to spheres in a model, more specifically, a solar system. It could just as easily apply to models of atoms…

[Description] NVARCHAR (1024) NULL,
[XCoord] FLOAT (53) NULL,
[YCoord] FLOAT (53) NULL,
[ZCoord] FLOAT (53) NULL,
[TCoord] FLOAT (53) NULL,
[YSpin] FLOAT (53) NULL,
[Radius] FLOAT (53) NULL,
[Mass] FLOAT (53) NULL,
[GeometryXSegments] INT NULL,
[GeometryYSegments] INT NULL,
[MaterialType] NVARCHAR (32) NULL,
[MaterialColor] NVARCHAR (8) NULL,
[EnvironmentMap] NVARCHAR (64) NULL,
[Reflectivity] FLOAT (53) NULL,
[Blending] NVARCHAR (32) NULL,
[Specular] NVARCHAR (32) NULL,
[MaterialCombine] NVARCHAR (64) NULL,
[TextureMapPath] NVARCHAR (1024) NULL,
[VideoTexturePath] NVARCHAR (1024) NULL,
[UseVideoTexture] BIT NULL,
[NormalsMapPath] NVARCHAR (1024) NULL,
[BumpMapPath] NVARCHAR (1024) NULL,
[BumpScale] FLOAT (53) NULL,
[DisplacementMapPath] NVARCHAR (1024) NULL,
[DisplacementScale] FLOAT (53) NULL,
[Transparent] BIT NULL,
[Opacity] FLOAT (53) NULL,
[AlphaTest] FLOAT (53) NULL,
[DepthTest] BIT NULL,
[Shininess] INT NULL,
[CastShadow] BIT NULL,
[RecieveShadow] BIT NULL,
[BlendingMode] NVARCHAR (64) NULL,
[ParentType] NVARCHAR (32) NULL,
[ParentID] UNIQUEIDENTIFIER NULL,
[DistanceFromParent] FLOAT (53) NULL,
[OrbitalPlane] FLOAT (53) NULL,
[OrbitalEccentricity] FLOAT (53) NULL,
[OrbitalSemiMajorAxis] FLOAT (53) NULL,
[OrbitalInclination] FLOAT (53) NULL,
[OrbitalOmegaLongitude] FLOAT (53) NULL,
[OrbitalArgumentOfPeriapsis] FLOAT (53) NULL,
[OrbitalTrueAnomoly] FLOAT (53) NULL,
[ImagePath] NVARCHAR (1024) NULL,
[WikipediaArticle] NVARCHAR (MAX) NULL,
[InsertionDateTime] DATETIME NULL,
[IconPath] NVARCHAR (128) NULL,
[VideoPath] NVARCHAR (128) NULL,
[environmentTexturePath] NVARCHAR (128) NULL,
[IsAtmosphere] BIT NULL,
[HasAtmosphere] BIT NULL,
[AtmosphereTexturePath] NVARCHAR (128) NULL,
[AtmosphereRadius] FLOAT (53) NULL,
[AtmosphereOpacity] FLOAT (53) NULL,
[AtmosphereVelolcity] FLOAT (53) NULL,
[Enabled] BIT NULL

The basic idea is not new and is also interesting and partially implemented for other areas.

However, one always comes up against limits.

I myself have worked with such database-based software for years. For special things, however, I had to write code. That was also possible with this software.

There Showrooms easy to generate from data of a construction drawing or dimensional sketch. I made a limited approach for a restricted scope.

But to do this for all conceivable use cases is a completely different dimension.

1 Like

I think you should check out PlayCanvas. It already does all the database-driven WebGL scene parameters you’re talking about in a pretty neat graphical editor. Additionally, it supports realtime multi-user collaboration. Plus it’s free to use, so it doesn’t go around demanding beer delivery from anyone!

2 Likes