[x3d-public] Visualizing Math in X3D
Joseph D Williams
joedwil at earthlink.net
Tue Jun 9 11:52:12 PDT 2020
Hi John.,
At this point the geometry would probably need to be embedded in a Humanoid object and you have to know the order of appearance of points as appears I the user code. Since elevation grid is sort of a convenience item, they may be like a primitive in that you do not have access to sufficient info to make a Displacer work. The geo grid does a lot and you may not need to build the thing yourself to get what you want.
Put the geometry for the graphic and the Displacer as children of a Site, part of a Segment, from an appropriate Joint. Maybe the wrist, and then you can see the diagram when your character poses to look at a location like a watch? Then you can see where your character is by reading the map. The geo group may have something interesting for you.
Thanks and Best,
Joe
From: John Carlson
Sent: Tuesday, June 9, 2020 11:05 AM
To: Joseph D Williams
Cc: Humanoid Animation (H-Anim) Working Group; X3D Graphics public mailing list
Subject: Re: [x3d-public] Visualizing Math in X3D
So can I use an HAnimDisplacer to animate displacements in r on a GeoElevationGrid on each lat,lon point?
I’ll probably look into it.
John
On Tue, Jun 9, 2020 at 1:01 PM John Carlson <yottzumm at gmail.com> wrote:
Yeah, painful.
John
On Tue, Jun 9, 2020 at 12:56 PM John Carlson <yottzumm at gmail.com> wrote:
Yes, something with GeoElevationGrid might solve my puzzle. I am not sure I want to see Earth transformed in that way, but perhaps I could do molten silicon (glass) cooling.
Thanks for the tip! I do not currently know the multiplier on my equation to get something visible.
John
On Tue, Jun 9, 2020 at 10:13 AM Joseph D Williams <joedwil at earthlink.net> wrote:
So, mainly, for vizualization and interaction geometry you are going to finally use xyz coordinates in a 3D linear coordinate system to make a triangle that you can see and interact with. Unless there is a new magic then it boils down to that. It glows or reflects or refracts depending upon what you tell it to do with the light you shine on it. It can respond to external or internal events as you choose. So far, you can compute however you can but to viz you seem to need at least one and typically in groups of 3 ccw to make a viz. So that is a pattern, compute bunches of stuff and produce interactive xyz viz for the feelings and wisdom then update the compute stuff, and so on.
Use the idea of a animating one of more xyz of a mesh independently of other xyz in the mesh. The mesh needs to be able to hang together given what you wish to do. If each displacement is fairly predicable and linear weighting then you can use the idea of a 3D weighted displacement vector applied independently to each of your points of interest. Each vector can be pointed where you wish and scaled 0 to full effect (all changeable at your will) to act upon the chosen points of your chosen mesh in the coordinate system of the mesh.
• spherical coordinates
I remember info about that in GeoSpatial
This sort of specialized Displacer is included in hanim browsers mainly to simplify and augment subtle mesh animation along with others styles, like using weighted joint rotations and coordinate interpolators. Basically if you know or have access to the current coordinates of a point and you want to move it in a controlled way according to the 3D displacement vector produced by the node, while maintaining the mesh, then I think we can figure out how use this clever device. to fabricate a controllable 3D displacement vector to do the job.
As an Enthusiast,
Joe
From: John Carlson
Sent: Monday, June 8, 2020 8:38 PM
To: Joseph D Williams
Cc: Humanoid Animation (H-Anim) Working Group; X3D Graphics public mailing list
Subject: Re: [x3d-public] Visualizing Math in X3D
I appreciate your enthusiasm for displaced. How do I displace r in spherical coordinates?
Thanks!
John
On Mon, Jun 8, 2020 at 7:52 PM Joseph D Williams <joedwil at earthlink.net> wrote:
See, you give it a displacement vector from initial or, if other point animations in the same frame then the location set by prior animation process such as other Displacers or joint rotation driven mesh deformation, according to the weight input. At least that’s the way I heard it. More in the standard.
You might think this might be a simple tool like first you get a shape as reference then another shape as target, then just give those start and stop frames to the interpolator and let it sort out the points between as you command it.
Just like that name says, you name some vertices in the target geometery and give it a final displacement from wherever it was to how far you tell it to be from where it got started. The only problem is, the node is simple and so it is only linear overall, but you can drive 0 to 1 however you wish.
Also, you can chain a few to get some special more delicate displacements.
Example:
Your point 527 of the target geometry (in the order of appearance in the user code) starts at 0 1.77 0 and over some cycle you want to move it to 0 1.92 0 then the displacer value for max movement is 0 0.15 0.
initial 0 1.77 0
displacer 0 0.15 0
result 0 1.92 0
Simple but very effective if you have a plan for what you wish to do given some input.
<Displacer DEF='tipTest'
coordIndex='527' displacements='0 0.15 0' weight='0'/>
weight driven by
<ScalarInterpolator DEF='tipTest'
key='0 0.5 1' keyValue='0 0.3 1'/>
If you have a deformable mesh, then all is good. But wait, you only get that by name in x3d hanim.
Shouldn’t there be some in basic x3d so you don’t have to put your code n the Humanoid?
So, maybe that is why our x3d hanim Displacer is so special and not called a ‘morpher’ doing one set of coordinates to another, but instead, where, relative to what it got, what do at you want to happen to that vertex when this Displacer gives it the drive.
Isn’t that also why all the ‘simple’ morphers like between frames and others are hidden in plain sight in the different styles of x3d interpolators? Each of their stories should be told, also.
Thanks,
Joe
From: Joseph D Williams
Sent: Monday, June 8, 2020 1:50 PM
To: John Carlson
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public] Visualizing Math in X3D
• Limited to [0,1]? I’ll check the docs.
Yes, that is the scale input. From the initial position, theDisplacer moves the specified vertex according to the 100 percent displacement set in the values.
Joe
Sent from Mail for Windows 10
From: John Carlson
Sent: Sunday, June 7, 2020 1:14 PM
To: Joseph D Williams
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public] Visualizing Math in X3D
Limited to [0,1]? I’ll check the docs.
On Sun, Jun 7, 2020 at 3:10 PM John Carlson <yottzumm at gmail.com> wrote:
Not trying to change the number of points yet. Thanks for the info.
On Sun, Jun 7, 2020 at 7:56 AM Joseph D Williams <joedwil at earthlink.net> wrote:
• What people don’t understand is I’m moving every vertex in the mesh
Hey John, vrml and x3d hid that one in the hanim Displacer node.
If you can’t do a morph you need with that, please tell. Just don’t try to change the number of points.
Joe
From: John Carlson
Sent: Sunday, June 7, 2020 12:55 AM
To: X3D Graphics public mailing list
Subject: [x3d-public] Visualizing Math in X3D
Don, I am just trying to make the standard better for visualizing mathematical stuff, I pretty much majored in mathematical visualization in college. There’s a lot of stuff in the standard for visualizing physics, both rigid body and particle systems. Instead of applying math to physics, I am trying to apply physics to math.
I realize that visualizing math does not really have a vocal champion in the X3D community, perhaps Andy Yeh is still around.
I imagine because Mathematica made great strides in the math community.
Mathematica still requires a Pro edition running on the cloud to even attempt my surfaces. In X3D, they pop right up, even multiple “transparent” animated objects. Yay X3D!
PlayCanvas has a *very* slow start up compared to X3D.
I would like to continue using X3D over PlayCanvas and others. The key remains don’t use the network for mesh, positions, or normals, generate them on the web client. My knowledge of geometry shaders indicates I still need to compute a grid on a sphere, and the geometry shader can enhance that.
That is why I am seeking to have the browser generate the mesh for at least one topology, let’s call it a sphere, but it’s the topology of the equation that matters. I can already position and compute normals of the surfaces. I could probably compute a mesh as sphere topology in an initialize method if that’s still allowed. I am not sure about X_ITE. I do not want to generate coordinates in X3D nodes. Shaders are fine for that. I am not sure I can confidently generate a mesh without defects.
Low bandwidth (think 4G LTE) is preferred.
But you can see my Frustration compared to Mathematica users who just type in a small set of equations. Not my lucky day.
I do not want geometry or perfect math in X3D. I want a topological 0-hole enclosed surface, subdivided to adequate resolution.
I will look further into primitive quality.
I will see if my graphics card supports raytracing.
John
On Sun, Jun 7, 2020 at 1:37 AM John Carlson <yottzumm at gmail.com> wrote:
Here’s the best looking version of what I like to do:
https://playcanv.as/p/wQgQBgkE/
Ideally, I could send a math equation in MathML by putting MathML into the geometry node, and PBR or material like glass or diamond
On Sun, Jun 7, 2020 at 1:22 AM John Carlson <yottzumm at gmail.com> wrote:
Previous subject: morphing comparison in X3D and glTF:
http://web3d.org/pipermail/x3d-public_web3d.org/2017-December/008037.html
I would say morphing is doable in X3DOM, but perhaps not other browsers. The most conformant approach would probably be an IFS where the position and normal are computed in a shader and the mesh is computed in user code, or provided statically.
My question becomes, Why can’t we provide at least provide for common topologies? 1 surface and 0 edges (sphere), 2 surface (cone), 3 surface (cylinder), 1 surface and one hole(torus), and consider a higher number of holes and surfaces. I think we have a isocahedron at least...but very slow to open.
It seems like I should be using blender to create X3D.
John
On Sun, Jun 7, 2020 at 12:33 AM John Carlson <yottzumm at gmail.com> wrote:
What people don’t understand is I’m moving every vertex in the mesh with respect to the mesh. Kind of like particle physics or morphing would be a better description. I have example videos.
John
On Sat, Jun 6, 2020 at 11:01 PM J. Scheurich <mufti11 at web.de> wrote:
> 1. User provides a mesh. I have done this before. It is too slow for
> a 100x100 IFS (20000 polygons I think).
It depend on your graphics card and driver.
For the rasberry PI and some other systems i meshured the performace in
3000 Polygon-Steps
(1 NURBS-Object with uv/Tessellation 0)
https://wdune.ourproject.org/docs/usage_docs/white_dune_rasberry_pi.odp
(in german but page 5 is a readable table).
A raspberry PI (shared Memory graphics card) can do 30000 polygons, a
Intel HD 3000 shared
memory graphics card (this is a common card on older "office"-laptops)
can do 33000 polygons.
There are very much faster graphic cards on "game laptops"....
The fastest graphics card on this list is a very slow (processor)
Mac-book....
The only systems that are not able to do 20000 polygons are a 8 year old
netbook and a
ARM chromebook without a 3D driver.
so long
MUFTI
_______________________________________________
x3d-public mailing list
x3d-public at web3d.org
http://web3d.org/mailman/listinfo/x3d-public_web3d.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200609/13f1d9ca/attachment-0001.html>
More information about the x3d-public
mailing list