<div dir="ltr"><div>Thanks for contributing this excellent suggestion Holger.  The field definitions and motivation sound excellent, and the example model looks great!</div><div><br></div><div>Draft specification prose changes follow, patterned after the existing <b>40.2.3 Color ramps</b> and <i>color/colorKey</i> paragraphs.</div><div><ul><li>X3D Architecture draft v4.1, clause 40 Particle systems component, new section</li><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/particleSystems.html#ScaleRamps">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/particleSystems.html#ScaleRamps</a></li></ul><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><span class="gmail-proposed" title="Mantis 1519" style="background-color:yellow"><font size="2"><b>40.2.4 Scale ramps</b><br></font></span><span class="gmail-proposed" title="Mantis 1519" style="background-color:yellow">A scale ramp is used to specify the scale of particle geometry over time. A scale ramp is a variation on the typical use of a coordinate interpolator. The key represents relative time values from the start of the lifetime of the particle. There should be the same number of scale values in the node as there are corresponding key values. If not, the smaller number of those two values shall be used. For particles that last longer than the last time value, the scale associated with the last time value shall be continued for the rest of the lifetime of the particle.</span></blockquote></div><div><br></div>and then<br><ul><li>X3D Architecture draft v4.1, clause 40 Particle systems component, 40.4.5 ParticleSystem</li><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/particleSystems.html#ParticleSystem">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/particleSystems.html#ParticleSystem</a></li></ul><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">ParticleSystem : X3DShapeNode { </font></blockquote></div><div><pre class="gmail-node" style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px">  <span class="gmail-proposed" title="Mantis 1519" style="background-color:yellow">SFNode   []       scale             NULL      [X3DCoordinateNode]</span>
  <span class="gmail-proposed" title="Mantis 1519" style="background-color:yellow">MFFloat  []       scaleKey          []        [0,∞)</span></pre></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="background-color:rgb(255,255,0)"><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">The </span><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">scale</i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"> and </span><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">scaleKey</i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"> fields specify how to change the size of the particle over the lifetime of an individual particle. The </span><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">scaleKey</i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"> field represents the time of the particle in seconds, while the </span><i style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">scale</i><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"> field holds a series of scale values to be used at the given key points in time. Each individual SFVec3f scale value in the MFVec3f array may indicate uniform or non-uniform scaling. Between key times, scale values are interpolated pairwise in a linear fashion, using the same rules defined for the </span><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/interpolators.html#CoordinateInterpolator" style="font-family:Verdana,Arial,Helvetica,sans-serif">CoordinateInterpolator</a><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"> node.</span></span></blockquote><div><br></div><div>It is worth observing that there are many ways to define a MFVec3f field holding a <i>scale </i>value array.  I think that your choice of Coordinate node is best for authors because it matches the corresponding design of ParticleSet <i>color/colorKey</i> fields, and also makes animation of the <i>scale v</i>alue array more straightforward.</div><div><br></div><div>If all that sounds good, then a second implementation is appropriate.  Improvements and clarifications to the draft X3D 4.1 specification are always welcome.</div><div><br></div><div>Mantis issue 1519 records the ongoing status of this recommended change.</div><div><ul><li>Mantis 1519: add ParticleSystem scale interpolation fields to that can scale particle sizes over lifetime</li><li><a href="https://mantis.web3d.org/view.php?id=1519">https://mantis.web3d.org/view.php?id=1519</a></li></ul><div>Have fun with X3D particle systems!  🎊 🎊 🎊</div></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting  <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Oct 29, 2025 at 10:42 AM Holger Seelig via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>The new latest of X_ITE comes now with two new fields for ParticleSystem. That are scaleKey and scale fields. They work much like colorKey and color fields.<div><br></div><div><font color="#000000">A user asks me for the ability to scale the particles during the time, basically to make the particles grow from its creation time and then shrink.</font><br><div><br></div><div>Other 3D engines like Unity have this already for a long time.</div><div><br></div><div>With the two new fields it is possible to have a curve and finely adjust the size over the time.</div><div><br></div><div>New fields will look like this:</div><div><br></div><div>inputOutput MFFloat scaleKey [ ]</div><div>inputOutput SFNode scale NULL  [Coordinate]</div><div><br></div><div>It will work with all geometry types a ParticleSystem can have, even GEOMETRY.</div><div><br></div><div><div style="color:rgb(0,0,0)"><font color="#000000"><span>I prepared a very simple example that shows the capabilities of these new fields:</span></font></div><div style="color:rgb(0,0,0)"><a href="https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/Library/Tests/Components/ParticleSystems/Scales.x3d" target="_blank">https://create3000.github.io/x_ite/playground/?url=https://create3000.github.io/Library/Tests/Components/ParticleSystems/Scales.x3d</a><font color="#000000"></font></div><br></div><div>Best regards,</div><div>Holger</div><div><br></div></div><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="text-align:start;text-indent:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">—</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Holger Seelig<br><a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a><br><br></div></div></div></div></div></div></div></div></div></div></div></div>
</div>


</div>_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>