[x3d-public] What or where is pp3.x3d
John Carlson
yottzumm at gmail.com
Mon Jul 28 11:00:56 PDT 2025
Here’s a question. Is whitespace copyrightable, when generated by pretty
printers? Can I get sued for copying whitespace?
On Mon, Jul 28, 2025 at 12:41 PM John Carlson <yottzumm at gmail.com> wrote:
> That’s a good point, I know one of my files has a large header. I will
> check the others.
>
> I believe the convertX3dToPly.js (the header one) is entirely LLM, the
> others were placed into LLM and merged into one, or updated. I would have
> to analyze the logs to determine the LLM author. I do copy/paste, like the
> whole file, even when it’s partially written by me. I do my own commits.
>
> Do you want me to label the PLY output model?
>
> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/data/pp3.x3d
>
> The above link is all my code. It’s real.
>
> I also provide examples to the LLM to help with coding.
>
> It’s unclear who owns the output of an LLM generated program?
>
> can also put comments in the CSS code and the responsive CSS, I didn’t
> write that.
>
> John
>
>
> On Mon, Jul 28, 2025 at 12:01 PM Vincent Marchetti via x3d-public <
> x3d-public at web3d.org> wrote:
>
>> Is pp3.x3d a real file with a accessible URL or is it a phantasm conjured
>> up by a large language model?
>>
>> Related, I request that any content generated by a large language model,
>> or for that matter any text copied from a 3rd party, be clearly identified
>> as such and the source ( LLM or otherwise) be identified
>>
>> Thank You
>> Vince Marchetti
>>
>>
>> > On Jul 28, 2025, at 12:08 PM, John Carlson via x3d-public <
>> x3d-public at web3d.org> wrote:
>> >
>> > Maybe some could try this prompt generated by AI: maybe expand it to
>> create a PROTO:
>> >
>> > You are asking about a very advanced and complex feature for X3D.
>> Native X3D specifications do not include nodes for rich text editing, such
>> as multi-line selection, cut, copy, and paste, directly within the 3D scene.
>> >
>> > The example you've pointed to, pp3.x3d, demonstrates a sophisticated,
>> custom-built solution that simulates this functionality using a combination
>> of sensors, scripts, and programmatic manipulation of the scene graph. It
>> is not an "out-of-the-box" feature but rather a scripted application
>> running inside the X3D environment.
>> >
>> > Here is a breakdown of how such a system is built, based on the
>> techniques used in advanced examples like the one you referenced.
>> >
>> > The Concept: Building a Text Editor from Scratch in 3D
>> > To achieve editable 3D text, you must essentially recreate the logic of
>> a text editor using X3D's event handling and scripting capabilities. This
>> involves capturing all user input (keyboard and mouse) and using a script
>> to manually update the text geometry and appearance to reflect typing,
>> selection, and other actions.
>> >
>> > Core Components of the Solution
>> > • Input Sensing: The foundation of this system is capturing user
>> input.
>> > • Keyboard Input: A <KeySensor> node is used to capture
>> every key pressed by the user. Its keyPress events are sent to a script for
>> processing.
>> > • Mouse Input: A <PlaneSensor> or <TouchSensor> is placed
>> over the text area. This sensor tracks the mouse's position when the user
>> clicks and drags, which is essential for determining the start and end
>> points of a text selection.
>> > • Scripting (The "Brain"): A central <Script> node, written in
>> JavaScript (ECMAScript), is the core of the editor. This script receives
>> events from the sensors and performs all the logic:
>> > • Text Management: The script maintains the full text
>> string in a variable. When a key is pressed (e.g., 'a', 'b', 'Backspace',
>> 'Enter'), the script updates this string accordingly. It then updates the
>> string field of one or more <Text> nodes to display the changes in the 3D
>> scene.
>> > • Multi-line Handling: To create multiple rows, the
>> script can either manage multiple <Text>nodes (one per line) or use a
>> single <Text>node. A single node can render multiple lines if its string
>> field is an array of strings (e.g., string='"First line" "Second line"').
>> The script is responsible for breaking the text into lines when the 'Enter'
>> key is pressed or when text wraps.
>> > • Caret/Cursor Management: The script must calculate and
>> display a cursor (often a simple 3D shape like a thin Box or a line). Its
>> position is updated based on typing and mouse clicks.
>> > • Selection Simulation: This is one of the most complex parts.
>> > • Hit-Point Calculation: When a user clicks, the script
>> uses the coordinates from the <PlaneSensor> to calculate which character in
>> the string was clicked on. This requires knowledge of the font's metrics
>> (character width, line height, etc.).
>> > • Visual Highlight: To show the selection, the text
>> cannot simply be highlighted as in HTML. Instead, the script
>> programmatically creates a visual effect. A common method is to place a
>> semi-transparent colored <Box> or IndexedFaceSet behind the selected
>> portion of the text. The script dynamically resizes and repositions this
>> highlight box as the user drags the mouse.
>> > • Clipboard Integration (Cut, Copy, Paste): The script must
>> interact with the web browser's clipboard.
>> > • Event Trapping: The script listens for specific
>> keyPress events from the <KeySensor>, such as 'Ctrl+C' (copy), 'Ctrl+X'
>> (cut), and 'Ctrl+V' (paste).
>> > • Browser API: It uses the browser's navigator.clipboard
>> API to perform the operations.
>> > • Copy: The script takes the currently selected
>> text (which it manages internally) and uses navigator.clipboard.writeText()
>> to place it on the system clipboard.
>> > • Cut: Performs a copy operation and then removes
>> the selected text from its internal string and updates the 3D <Text> node.
>> > • Paste: The script calls
>> navigator.clipboard.readText() to get text from the clipboard and inserts
>> it into its internal string at the cursor's position, then updates the 3D
>> text.
>> > Summary of the Workflow
>> > • User clicks in the 3D text area.
>> > • The <PlaneSensor> sends the click location to the script.
>> > • The script calculates the character position and places a 3D
>> cursor there.
>> > • User types a key.
>> > • The <KeySensor> sends the key value to the script.
>> > • The script updates its internal text string, moves the cursor,
>> and pushes the new string to the stringfield of the visible <Text> node.
>> > • User clicks and drags to select text.
>> > • The script calculates the start and end of the selection and
>> continuously updates the size and position of a 3D highlight box behind the
>> text.
>> > • User presses 'Ctrl+C'.
>> > • The script detects this key combination, gets the selected
>> text, and uses navigator.clipboard.writeText() to copy it.
>> > In conclusion, creating a fully functional, multi-line editable text
>> area in X3D is a highly complex programming task that requires building an
>> entire application from the ground up using X3D's scripting and
>> event-handling nodes. The example you linked is a powerful demonstration of
>> what can be achieved with this advanced approach.
>> >
>> >
>> >
>> > On Mon, Jul 28, 2025 at 10:39 AM John Carlson <yottzumm at gmail.com>
>> wrote:
>> > Now that we have FontLibrary, it seems a lot more likely that we can
>> create documentation and specifications in X3D 4.1 instead of HTML.
>> >
>> > So the thought is to take our generated content in the archive, and
>> create a 3D library world out of it, Maybe call it the X3D 3D library
>> world.
>> >
>> > Maybe we can figure out new ways of interacting with specifications and
>> documentation.
>> >
>> > The first thing I plan to do is take my textareas in X3DJSONLD 12, and
>> render them in 3D. Maybe the first task is to create a 3D textarea.
>> >
>> >
>> > See Starcel:
>> > https://youtu.be/rJuRTZOE99g
>> >
>> > John
>> > _______________________________________________
>> > x3d-public mailing list
>> > x3d-public at web3d.org
>> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>
>> _______________________________________________
>> 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/20250728/976e44c0/attachment-0001.html>
More information about the x3d-public
mailing list