<commit_before>#+SEQ_TODO: [_] [x]
* cl-3d (Rendering X3D in Common Lisp)

  - This work is ongoing and not yet ready for production. My goal is
    to develop a scenegraph in common-lisp based on the X3D
    specification. Currently I autogenerate an X3D (XML) parser from
    one of my other projects called cl-3d-creator.

  - The autogenerator simply reads X3D's schema definitions and
    generates a parser based on XMlisp to read XML directly into lisp
    objects. The idea is to autogenerate as much as the boiler plate
    code as possible and fill in the rest of the stuff manually.

  - Ideally I would like to keep the manual code as minimal and as
    organized as possible in order to enable me to make sweeping
    designing changes if needed. However the first priority is to get
    things working and worry about organization at a later stage.

  - My plan for now is to execute the project in two phases i.e create
    first optimize second. Phase II (optimization) starts midway of
    Phase I (creation) and we will slowly and smoothly transistion to
    more optimized implementation.

* Phase I (Create)
  All boiler plate code should be generated. Use opengl 1.1 or whatever
  is fastest to just make things work. This from a user perspective
  should be reasonably complete with basic rendering and interaction
  facilities working (non optimized).

  This will be test driven development and the goal will be make the
  tests work. Our tests are basically X3D scripts taken from the
  following site.

  http://x3dgraphics.com/examples/X3dForWebAuthors/

** [x] 1. Basic
*** [x] make XMLisp accessable with asdf
*** [x] Parse X3d using xmlisp
*** [x] Implement run method and basic windowing
**** [x] Implement GLUT windowing mechanism as scene
** [*] 2. GeometricPrimitives
*** [x] Box.lisp example
#    NOTE: http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/_pages/page01.html
# **** [x] Background class
# **** [x] Viewpoint class
# **** [x] Shape class
# **** [x] Box class
# **** [x] Appearance class
# **** [x] Material class
# **** [x] Implement parsing function for each

*** [_] Cone.lisp
*** [_] Cyliner.lisp
*** [_] GeometryPrimitiveNodes.lisp
*** [_] GeometryPrimitiveNodesWhiteBackground.lisp
*** [_] Sphere.lisp
*** [_] Text.lisp
*** [_] TextLengthMaxExtent.lisp
*** [_] TextSpecialCharacters.lisp

** [_] 3. Grouping
** [_] 4. Viewing Navigation
** [_] 5. Appearence Material Textures
** [_] 6. Geometry Points Lines and Polygons
** [_] 7. Event Animation Interpolation
** [_] 8. Interactivity
** [_] 9. Event Utilities Scripting
** [_] 10. Geometry 2D
** [_] 11. Lighting Environment Effects
** [_] 12. Environment Sensor Sound
** [_] 13. Geometry Triangles Quadrilaterals.
** [_] 14. Prototypes
** [_] 15. MetaData

* Phase II (Optimize)
** [_] Use reactive programming / asynchronous programming using cl-async.
** [_] Implement the basic logic of operation
** [_] Implement default shader
*** [_] Add genertic function to initialize Shader and Program
*** [_] Initialize VAO and VBO
*** [_] Implement initialization pass

* General notes and ideas
** [x] Add NOTICE.txt
** [_] Check if all docmentation has note to NOTICE.txt

Notes:

- It looks like windowing and gl are sort of implementation details and come at
  lower level.
- Do we need the concept of a window? Things are going to be full screen anyway
  so no.
** [x] Shader object
** [x] Program object
** [_] (defuniform) macro
*** [_] Extend support for Matrix, integer and vector
** [_] (defattribute) macro
** [_] Write small sample shader for 3d.
** [_] Render box example using this sample shader
** [_] Implement Sphere source
** [_] Redo molecule application using custom spheres
** [x] Optionally use SDL example to set opengl context
** [_] Projection and model view calculations for VR
** [_] Send inputs form mouse
** [_] Handle events from gamepad
** [_] Figure out how to render onto another display
- Start a common lisp server of that session and let it go
<commit_msg>Update README.org. Check Cone.lisp<commit_after>#+SEQ_TODO: [_] [x]
* cl-3d (Rendering X3D in Common Lisp)

  - This work is ongoing and not yet ready for production. My goal is
    to develop a scenegraph in common-lisp based on the X3D
    specification. Currently I autogenerate an X3D (XML) parser from
    one of my other projects called cl-3d-creator.

  - The autogenerator simply reads X3D's schema definitions and
    generates a parser based on XMlisp to read XML directly into lisp
    objects. The idea is to autogenerate as much as the boiler plate
    code as possible and fill in the rest of the stuff manually.

  - Ideally I would like to keep the manual code as minimal and as
    organized as possible in order to enable me to make sweeping
    designing changes if needed. However the first priority is to get
    things working and worry about organization at a later stage.

  - My plan for now is to execute the project in two phases i.e create
    first optimize second. Phase II (optimization) starts midway of
    Phase I (creation) and we will slowly and smoothly transistion to
    more optimized implementation.

* Phase I (Create)
  All boiler plate code should be generated. Use opengl 1.1 or whatever
  is fastest to just make things work. This from a user perspective
  should be reasonably complete with basic rendering and interaction
  facilities working (non optimized).

  This will be test driven development and the goal will be make the
  tests work. Our tests are basically X3D scripts taken from the
  following site.

  http://x3dgraphics.com/examples/X3dForWebAuthors/

** [x] 1. Basic
*** [x] make XMLisp accessable with asdf
*** [x] Parse X3d using xmlisp
*** [x] Implement run method and basic windowing
**** [x] Implement GLUT windowing mechanism as scene
** [*] 2. GeometricPrimitives
*** [x] Box.lisp example
#    NOTE: http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/_pages/page01.html
# **** [x] Background class
# **** [x] Viewpoint class
# **** [x] Shape class
# **** [x] Box class
# **** [x] Appearance class
# **** [x] Material class
# **** [x] Implement parsing function for each

*** [x] Cone.lisp
*** [_] Cyliner.lisp
*** [_] GeometryPrimitiveNodes.lisp
*** [_] GeometryPrimitiveNodesWhiteBackground.lisp
*** [_] Sphere.lisp
*** [_] Text.lisp
*** [_] TextLengthMaxExtent.lisp
*** [_] TextSpecialCharacters.lisp

** [_] 3. Grouping
** [_] 4. Viewing Navigation
** [_] 5. Appearence Material Textures
** [_] 6. Geometry Points Lines and Polygons
** [_] 7. Event Animation Interpolation
** [_] 8. Interactivity
** [_] 9. Event Utilities Scripting
** [_] 10. Geometry 2D
** [_] 11. Lighting Environment Effects
** [_] 12. Environment Sensor Sound
** [_] 13. Geometry Triangles Quadrilaterals.
** [_] 14. Prototypes
** [_] 15. MetaData

* Phase II (Optimize)
** [_] Use reactive programming / asynchronous programming using cl-async.
** [_] Implement the basic logic of operation
** [_] Implement default shader
*** [_] Add genertic function to initialize Shader and Program
*** [_] Initialize VAO and VBO
*** [_] Implement initialization pass

* General notes and ideas
** [x] Add NOTICE.txt
** [_] Check if all docmentation has note to NOTICE.txt

Notes:

- It looks like windowing and gl are sort of implementation details and come at
  lower level.
- Do we need the concept of a window? Things are going to be full screen anyway
  so no.
** [x] Shader object
** [x] Program object
** [_] (defuniform) macro
*** [_] Extend support for Matrix, integer and vector
** [_] (defattribute) macro
** [_] Write small sample shader for 3d.
** [_] Render box example using this sample shader
** [_] Implement Sphere source
** [_] Redo molecule application using custom spheres
** [x] Optionally use SDL example to set opengl context
** [_] Projection and model view calculations for VR
** [_] Send inputs form mouse
** [_] Handle events from gamepad
** [_] Figure out how to render onto another display
- Start a common lisp server of that session and let it go

{'fraction_non_alphanumeric': 0.09566943789552054, 'fraction_numerical': 0.010174959672415933, 'mean_word_length': 3.984539270253556, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5720758', 'n_tokens_mistral': 2482, 'n_tokens_neox': 2262, 'n_words': 1040}