* Bump mapping
-Light source moves around. Based on light source location, different
-parts of the surface become illuminated.
+This QBasic program demonstrates a classic bump mapping technique,
+creating an animation where a light source moves around a textured
+surface. The program visually simulates how different parts of the
+surface become illuminated based on the light source's position. This
+effect is commonly used in computer graphics to add depth and realism
+to surfaces without increasing geometric complexity.
#+begin_export html
<div class="flex-center">
</div>
#+end_export
+How It Works:
+
+1. *Surface Generation* : The program starts by generating a height
+ map for the surface using random dots and lines. This height map
+ defines the texture and contours of the surface.
+2. *Light Animation* : A light source is animated to move around the
+ surface using sine functions, creating a smooth, circular motion.
+3. *Brightness Calculation* : For each pixel on the surface, the
+ program calculates the brightness based on the distance and angle
+ from the light source. This involves determining the surface
+ inclination relative to the light position.
+4. *Rendering* : The surface is rendered with varying brightness
+ levels to simulate the effect of the moving light source. The light
+ source itself is drawn as a small circle that moves across the
+ surface.
+
[[file:Bump mapping.bas][Source code]]
* Tree
-Tree grows and branches out.
+This QBasic program renders a fractal tree that starts with a single
+root and branches out into a complex pattern. The program is an
+artistic representation of how simple rules can generate intricate and
+beautiful structures, reminiscent of natural tree growth patterns.
#+begin_export html
<div class="flex-center">
* Rotation in 2D space using trigonometry functions
-Grid of dots is rotated on the screen.
+This QBasic program demonstrates the rotation of points in a 2D
+coordinate system using trigonometric functions. It simulates the
+rotation of a grid of points around the origin, providing a visual
+representation of how sine and cosine functions can be used to achieve
+2D rotation.
#+begin_export html
<div class="flex-center">
* Various text mode animation effects
-Program demonstrates various animation effects that can be
-accomplished using text-mode rendering.
+This QBasic program creates visually appealing text mode animations by
+overlaying various graphical effects while scrolling its own source
+code in the background. It is an example of how to manipulate text and
+colors to create dynamic visual effects in a console environment.
#+begin_export html
<div class="flex-center">
* Snowfall
-Program simulates falling of snow particles. Particles fall towards
-the ground because of the gravity. Once particle falls on the surface,
-it tries to skid around a bit, bit ultimately freezes in-place.
+This QBasic program simulates a simple snowfall effect on the
+screen. It creates a visually appealing animation where particles
+(representing snowflakes) fall from the top of the screen to the
+bottom, interacting with obstacles and each other. The program is a
+example of basic animation and collision detection techniques, which
+can be educational for those interested in learning about simple
+physics simulations and graphical programming.
#+begin_export html
<div class="flex-center">
</div>
#+end_export
+
+What's in it for the Reader?
+
+- Learning Basic Animation :: This program provides a straightforward
+ example of how to animate objects on the screen, which can be a
+ foundational concept for game development and graphical
+ applications.
+- Collision Detection :: The code includes basic collision detection
+ logic, which is essential for interactive applications and games.
+- Randomization :: The use of randomness in particle movement and
+ positioning can teach how unpredictability can be introduced into
+ simulations.
+- Graphics Handling :: The program demonstrates how to manipulate
+ screen pixels and draw shapes, which is useful for understanding
+ low-level graphics programming.
+
[[file:Snowfall.bas][Source code]]
#+INCLUDE: "Snowfall.bas" src basic-qb45
* Screensaver
-Application of trigonometry functions is explored here to calculate
-line coordinates.
+The "Mystery Screensaver" is a visually captivating animation program
+written in QBasic. It creates an intriguing screensaver effect with
+dynamic, flowing lines that continuously change patterns, providing a
+mesmerizing visual experience. This program is an example of how
+simple mathematical functions can be used to create complex and
+engaging visual effects.
#+begin_export html
<div class="flex-center">
* Screensaver - flying hand fans
-Quick implementation for colorful flying hand fans.
+This QBasic program is a visually engaging screensaver that creates an
+animated display of colorful lines and patterns. The program is
+designed to produce a dynamic and continuously evolving visual
+experience, reminiscent of classic screensavers from the early days of
+personal computing.
#+begin_export html
<div class="flex-center">
* Polygon rendering
-Algorithm to demonstrate rendering or polygons across arbitrary
-coordinates.
+This QBasic program generates and renders random polygons on the
+screen, each filled with a random color. It's a simple yet effective
+demonstration of basic computer graphics principles, particularly in
+rendering geometric shapes and handling randomness.
#+begin_export html
<div class="flex-center">
* Textured polygon rendering
-Algorithm to demonstrate rendering or textured polygons across
-arbitrary coordinates.
+The program provides a practical example of texture mapping, a
+fundamental concept in computer graphics. Readers can learn how
+textures are applied to polygons.
+
#+begin_export html
<div class="flex-center">
* Orbiting particles
-Trivial to implement but interesting looking effect. Various particles
-are orbiting central point. Each particle is connected to the center.
+This QBasic program creates a visually engaging animation of particles
+orbiting around a central point. The particles are rendered as colored
+circles, each moving in a unique orbit, creating a dynamic and
+mesmerizing effect.
#+begin_export html
<div class="flex-center">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-28 ma 03:32 -->
+<!-- 2025-07-28 ma 18:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Fractals</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orgf8fab95">1. Fractal circles</a></li>
-<li><a href="#orgeb3421b">2. Fractal circles animated</a></li>
-<li><a href="#org8bc5d61">3. Fractal of squares</a></li>
-<li><a href="#orga748cab">4. Fractal of squares animated</a></li>
-<li><a href="#orgfd9ef84">5. Fractal of trees</a></li>
+<li><a href="#org67a3e04">1. Fractal circles</a></li>
+<li><a href="#org9b77eb5">2. Fractal circles animated</a></li>
+<li><a href="#orged10e86">3. Fractal of squares</a></li>
+<li><a href="#org8554707">4. Fractal of squares animated</a></li>
+<li><a href="#orgc110f72">5. Fractal of trees</a></li>
</ul>
</div>
</div>
</style>
-<div id="outline-container-orgf8fab95" class="outline-2">
-<h2 id="orgf8fab95"><span class="section-number-2">1.</span> Fractal circles</h2>
+<div id="outline-container-org67a3e04" class="outline-2">
+<h2 id="org67a3e04"><span class="section-number-2">1.</span> Fractal circles</h2>
<div class="outline-text-2" id="text-1">
-<div id="org81b1864" class="figure">
+<div id="orgeebb105" class="figure">
<p><a href="fractal circles.bas" class="responsive-img"><img src="fractal%20circles.png" alt="fractal%20circles.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgeb3421b" class="outline-2">
-<h2 id="orgeb3421b"><span class="section-number-2">2.</span> Fractal circles animated</h2>
+<div id="outline-container-org9b77eb5" class="outline-2">
+<h2 id="org9b77eb5"><span class="section-number-2">2.</span> Fractal circles animated</h2>
<div class="outline-text-2" id="text-2">
<div class="flex-center">
<video controls loop autoplay class="flex-center">
</div>
</div>
-<div id="outline-container-org8bc5d61" class="outline-2">
-<h2 id="org8bc5d61"><span class="section-number-2">3.</span> Fractal of squares</h2>
+<div id="outline-container-orged10e86" class="outline-2">
+<h2 id="orged10e86"><span class="section-number-2">3.</span> Fractal of squares</h2>
<div class="outline-text-2" id="text-3">
-<div id="org349adb0" class="figure">
+<div id="org4f8b4a7" class="figure">
<p><a href="fractal squares.bas" class="responsive-img"><img src="fractal%20squares,%201.png" alt="fractal%20squares,%201.png" class="responsive-img" /></a>
</p>
</div>
-<div id="orgf1ed4b8" class="figure">
+<div id="org7567bb6" class="figure">
<p><a href="fractal squares.bas" class="responsive-img"><img src="fractal%20squares,%202.png" alt="fractal%20squares,%202.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orga748cab" class="outline-2">
-<h2 id="orga748cab"><span class="section-number-2">4.</span> Fractal of squares animated</h2>
+<div id="outline-container-org8554707" class="outline-2">
+<h2 id="org8554707"><span class="section-number-2">4.</span> Fractal of squares animated</h2>
<div class="outline-text-2" id="text-4">
<div class="flex-center">
<video controls loop autoplay class="flex-center">
</div>
</div>
-<div id="outline-container-orgfd9ef84" class="outline-2">
-<h2 id="orgfd9ef84"><span class="section-number-2">5.</span> Fractal of trees</h2>
+<div id="outline-container-orgc110f72" class="outline-2">
+<h2 id="orgc110f72"><span class="section-number-2">5.</span> Fractal of trees</h2>
<div class="outline-text-2" id="text-5">
<div class="flex-center">
<video controls loop autoplay class="flex-center">
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-28 ma 03:32</p>
+<p class="date">Created: 2025-07-28 ma 18:31</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
* Fractal circles
+This QBasic program generates a visually captivating spiral fractal
+composed of circles. It employs a recursive algorithm to create
+intricate patterns that can inspire those interested in fractal
+geometry, recursive programming, and graphical design.
+
#+attr_html: :class responsive-img
#+attr_latex: :width 1000px
[[file:fractal circles.bas][file:fractal%20circles.png]]
+- Color and Depth :: The color of each circle alternates based on the
+ recursion depth, adding visual complexity to the fractal.
+- Termination Condition :: The recursion terminates when the size of
+ the circles becomes too small, ensuring the program doesn't run
+ indefinitely.
+
[[file:fractal circles.bas][Source code]]
* Fractal circles animated
+
+This QBasic program creates an animated fractal composed of circles,
+demonstrating an engaging visual effect. The program uses a timer
+system to control the animation's progression.
+
#+begin_export html
<div class="flex-center">
<video controls loop autoplay class="flex-center">
* Fractal of squares
+This QBasic program generates and displays a fractal pattern composed of squares.
+
#+attr_html: :class responsive-img
#+attr_latex: :width 1000px
[[file:fractal squares.bas][file:fractal%20squares,%201.png]]
[[file:fractal squares.bas][file:fractal%20squares,%202.png]]
* Fractal of squares animated
+
+This QBasic program generates an animated fractal pattern composed of
+size-shifting squares. The animation creates a visually captivating
+display by continuously redrawing the fractal with varying parameters,
+resulting in a dynamic and ever-changing geometric pattern.
+
#+begin_export html
<div class="flex-center">
<video controls loop autoplay class="flex-center">
</video>
</div>
#+end_export
+
[[file:fractal squares animated.bas][Source code]]
* Fractal of trees
+
+QBasic program that generates a visually appealing fractal tree
+animation. The program creates a dynamic fractal pattern that
+resembles a tree, with branches that grow and change over time.
+
#+begin_export html
<div class="flex-center">
<video controls loop autoplay class="flex-center">
</video>
</div>
#+end_export
+
+
[[file:fractal trees.bas][Source code]]
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-28 ma 03:32 -->
+<!-- 2025-07-28 ma 18:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Spiral series</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orga69a35d">1. Spiral with increasing density</a></li>
-<li><a href="#org48ee846">2. Spiral with varying height</a></li>
-<li><a href="#org4bb74ce">3. Shaded spiral</a></li>
-<li><a href="#orge767640">4. Sphere forming spiral</a></li>
-<li><a href="#org0c1d6ba">5. Textured spherical spiral</a></li>
-<li><a href="#org41561dd">6. Textured and shaded spherical spiral</a></li>
+<li><a href="#org4f6f844">1. Spiral with increasing density</a></li>
+<li><a href="#org81f12a2">2. Spiral with varying height</a></li>
+<li><a href="#orgde6c4be">3. Shaded spiral</a></li>
+<li><a href="#org9c5aa8d">4. Sphere forming spiral</a></li>
+<li><a href="#orga428d74">5. Textured spherical spiral</a></li>
+<li><a href="#org1f04d62">6. Textured and shaded spherical spiral</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orga69a35d" class="outline-2">
-<h2 id="orga69a35d"><span class="section-number-2">1.</span> Spiral with increasing density</h2>
+<div id="outline-container-org4f6f844" class="outline-2">
+<h2 id="org4f6f844"><span class="section-number-2">1.</span> Spiral with increasing density</h2>
<div class="outline-text-2" id="text-1">
-<div id="org9f588cc" class="figure">
+<div id="org2be678b" class="figure">
<p><img src="spiral.png" alt="spiral.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org48ee846" class="outline-2">
-<h2 id="org48ee846"><span class="section-number-2">2.</span> Spiral with varying height</h2>
+<div id="outline-container-org81f12a2" class="outline-2">
+<h2 id="org81f12a2"><span class="section-number-2">2.</span> Spiral with varying height</h2>
<div class="outline-text-2" id="text-2">
-<div id="orgcabbf76" class="figure">
+<div id="orgd7d0a78" class="figure">
<p><img src="spiral, 2.png" alt="spiral, 2.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org4bb74ce" class="outline-2">
-<h2 id="org4bb74ce"><span class="section-number-2">3.</span> Shaded spiral</h2>
+<div id="outline-container-orgde6c4be" class="outline-2">
+<h2 id="orgde6c4be"><span class="section-number-2">3.</span> Shaded spiral</h2>
<div class="outline-text-2" id="text-3">
-<div id="orga4b5761" class="figure">
+<div id="orgc7c2f14" class="figure">
<p><img src="spiral, 3.png" alt="spiral, 3.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-orge767640" class="outline-2">
-<h2 id="orge767640"><span class="section-number-2">4.</span> Sphere forming spiral</h2>
+<div id="outline-container-org9c5aa8d" class="outline-2">
+<h2 id="org9c5aa8d"><span class="section-number-2">4.</span> Sphere forming spiral</h2>
<div class="outline-text-2" id="text-4">
<p>
Similar to previous spiral, Line segments are connected between the
</p>
-<div id="org912e61d" class="figure">
+<div id="org02a5efa" class="figure">
<p><img src="spiral, 4, 1.png" alt="spiral, 4, 1.png" class="responsive-img" />
</p>
</div>
</p>
-<div id="org827f8e8" class="figure">
+<div id="org848d35b" class="figure">
<p><img src="spiral, 4, 2.png" alt="spiral, 4, 2.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org0c1d6ba" class="outline-2">
-<h2 id="org0c1d6ba"><span class="section-number-2">5.</span> Textured spherical spiral</h2>
+<div id="outline-container-orga428d74" class="outline-2">
+<h2 id="orga428d74"><span class="section-number-2">5.</span> Textured spherical spiral</h2>
<div class="outline-text-2" id="text-5">
-<div id="org2090eeb" class="figure">
+<div id="org34884ba" class="figure">
<p><img src="spiral, 5.png" alt="spiral, 5.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org41561dd" class="outline-2">
-<h2 id="org41561dd"><span class="section-number-2">6.</span> Textured and shaded spherical spiral</h2>
+<div id="outline-container-org1f04d62" class="outline-2">
+<h2 id="org1f04d62"><span class="section-number-2">6.</span> Textured and shaded spherical spiral</h2>
<div class="outline-text-2" id="text-6">
-<div id="org2163199" class="figure">
+<div id="org327a812" class="figure">
<p><img src="spiral, 6.png" alt="spiral, 6.png" class="responsive-img" />
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-28 ma 03:32</p>
+<p class="date">Created: 2025-07-28 ma 18:31</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-28 ma 03:32 -->
+<!-- 2025-07-28 ma 18:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Fractals</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orge4e7ce1">1. Circular waves</a></li>
-<li><a href="#org99c6cfa">2. Diamond square clouds</a></li>
-<li><a href="#orgbf537cb">3. Old paper</a></li>
-<li><a href="#org0540284">4. Wood</a></li>
-<li><a href="#org4685bf9">5. Yellow flame</a></li>
+<li><a href="#org1743c5c">1. Circular waves</a></li>
+<li><a href="#org7aca31e">2. Diamond square clouds</a></li>
+<li><a href="#org35f4011">3. Old paper</a></li>
+<li><a href="#org8f24972">4. Wood</a></li>
+<li><a href="#org90bc76d">5. Yellow flame</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orge4e7ce1" class="outline-2">
-<h2 id="orge4e7ce1"><span class="section-number-2">1.</span> Circular waves</h2>
+<div id="outline-container-org1743c5c" class="outline-2">
+<h2 id="org1743c5c"><span class="section-number-2">1.</span> Circular waves</h2>
<div class="outline-text-2" id="text-1">
<p class="responsive-img">
<img src="Circular waves.png" alt="Circular waves.png" class="responsive-img" />
</div>
</div>
-<div id="outline-container-org99c6cfa" class="outline-2">
-<h2 id="org99c6cfa"><span class="section-number-2">2.</span> Diamond square clouds</h2>
+<div id="outline-container-org7aca31e" class="outline-2">
+<h2 id="org7aca31e"><span class="section-number-2">2.</span> Diamond square clouds</h2>
<div class="outline-text-2" id="text-2">
<p class="responsive-img">
<img src="Diamond square clouds.png" alt="Diamond square clouds.png" class="responsive-img" />
</div>
</div>
-<div id="outline-container-orgbf537cb" class="outline-2">
-<h2 id="orgbf537cb"><span class="section-number-2">3.</span> Old paper</h2>
+<div id="outline-container-org35f4011" class="outline-2">
+<h2 id="org35f4011"><span class="section-number-2">3.</span> Old paper</h2>
<div class="outline-text-2" id="text-3">
<p class="responsive-img">
<img src="Old paper.png" alt="Old paper.png" class="responsive-img" />
</div>
</div>
-<div id="outline-container-org0540284" class="outline-2">
-<h2 id="org0540284"><span class="section-number-2">4.</span> Wood</h2>
+<div id="outline-container-org8f24972" class="outline-2">
+<h2 id="org8f24972"><span class="section-number-2">4.</span> Wood</h2>
<div class="outline-text-2" id="text-4">
<p class="responsive-img">
<img src="Wood.png" alt="Wood.png" class="responsive-img" />
</div>
</div>
-<div id="outline-container-org4685bf9" class="outline-2">
-<h2 id="org4685bf9"><span class="section-number-2">5.</span> Yellow flame</h2>
+<div id="outline-container-org90bc76d" class="outline-2">
+<h2 id="org90bc76d"><span class="section-number-2">5.</span> Yellow flame</h2>
<div class="outline-text-2" id="text-5">
<p class="responsive-img">
<img src="Yellow flame.png" alt="Yellow flame.png" class="responsive-img" />
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-28 ma 03:32</p>
+<p class="date">Created: 2025-07-28 ma 18:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-28 ma 03:33 -->
+<!-- 2025-07-28 ma 18:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>3D Synthezier</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org8abad43">1. Operating principle</a>
+<li><a href="#orgb764358">1. Operating principle</a>
<ul>
-<li><a href="#org8dd1c07">1.1. Rectangular city</a></li>
-<li><a href="#org5cf25b3">1.2. Hexagonal city</a></li>
+<li><a href="#org036baf2">1.1. Rectangular city</a></li>
+<li><a href="#org341b1c7">1.2. Hexagonal city</a></li>
</ul>
</li>
-<li><a href="#orgc7907d1">2. Scene description language</a>
+<li><a href="#org9b1aae2">2. Scene description language</a>
<ul>
-<li><a href="#org5148d75">2.1. here</a></li>
-<li><a href="#orgbec57b2">2.2. p</a></li>
-<li><a href="#orgfc6c719">2.3. f</a></li>
-<li><a href="#org52097d3">2.4. warn</a></li>
-<li><a href="#org5a8e41b">2.5. end</a></li>
-<li><a href="#orgde495ab">2.6. mtl</a></li>
-<li><a href="#org7cb3699">2.7. mtlrnd</a></li>
-<li><a href="#orgd335276">2.8. obj</a></li>
-<li><a href="#org9abf1f6">2.9. rnd</a></li>
-<li><a href="#org8d1f106">2.10. #</a></li>
-<li><a href="#org01937d0">2.11. out</a></li>
-<li><a href="#org26af06c">2.12. set</a></li>
-<li><a href="#org126d947">2.13. variables usage</a></li>
-<li><a href="#orgb154baa">2.14. cmp</a></li>
-<li><a href="#orgf6e6283">2.15. ?</a></li>
-<li><a href="#org36815a1">2.16. dum</a></li>
+<li><a href="#org316df2f">2.1. here</a></li>
+<li><a href="#org4bf4fc2">2.2. p</a></li>
+<li><a href="#org00e2046">2.3. f</a></li>
+<li><a href="#org0557bd0">2.4. warn</a></li>
+<li><a href="#org466d971">2.5. end</a></li>
+<li><a href="#org7919a34">2.6. mtl</a></li>
+<li><a href="#org0faf236">2.7. mtlrnd</a></li>
+<li><a href="#orgd82eebd">2.8. obj</a></li>
+<li><a href="#orgd7276b3">2.9. rnd</a></li>
+<li><a href="#orgdff1d90">2.10. #</a></li>
+<li><a href="#org01758ef">2.11. out</a></li>
+<li><a href="#org8b8db69">2.12. set</a></li>
+<li><a href="#org6fd0dfe">2.13. variables usage</a></li>
+<li><a href="#org8ec9431">2.14. cmp</a></li>
+<li><a href="#org4fee636">2.15. ?</a></li>
+<li><a href="#orgf2bfe2b">2.16. dum</a></li>
</ul>
</li>
-<li><a href="#org45443e3">3. Installation</a>
+<li><a href="#orgede2524">3. Installation</a>
<ul>
-<li><a href="#org7a64d30">3.1. System requirements</a></li>
-<li><a href="#org7344c27">3.2. Directory layout</a></li>
+<li><a href="#org74398fb">3.1. System requirements</a></li>
+<li><a href="#org666d0f8">3.2. Directory layout</a></li>
</ul>
</li>
-<li><a href="#org772bf80">4. Usage</a></li>
+<li><a href="#org4832d2c">4. Usage</a></li>
</ul>
</div>
</div>
</style>
-<div id="outline-container-org8abad43" class="outline-2">
-<h2 id="org8abad43"><span class="section-number-2">1.</span> Operating principle</h2>
+<div id="outline-container-orgb764358" class="outline-2">
+<h2 id="orgb764358"><span class="section-number-2">1.</span> Operating principle</h2>
<div class="outline-text-2" id="text-1">
<p>
Parses scene definition language and creates 3D world based on
</p>
</div>
-<div id="outline-container-org8dd1c07" class="outline-3">
-<h3 id="org8dd1c07"><span class="section-number-3">1.1.</span> Rectangular city</h3>
+<div id="outline-container-org036baf2" class="outline-3">
+<h3 id="org036baf2"><span class="section-number-3">1.1.</span> Rectangular city</h3>
<div class="outline-text-3" id="text-1-1">
-<div id="orgcde8a63" class="figure">
+<div id="org9b68e77" class="figure">
<p><img src="rectangular city, 1.jpeg" alt="rectangular city, 1.jpeg" class="responsive-img" />
</p>
</div>
-<div id="orgc7984ce" class="figure">
+<div id="orgd559597" class="figure">
<p><img src="rectangular city, 2.jpeg" alt="rectangular city, 2.jpeg" class="responsive-img" />
</p>
</div>
-<div id="org5957bcc" class="figure">
+<div id="org7a8a12d" class="figure">
<p><img src="rectangular city, 3.jpeg" alt="rectangular city, 3.jpeg" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org5cf25b3" class="outline-3">
-<h3 id="org5cf25b3"><span class="section-number-3">1.2.</span> Hexagonal city</h3>
+<div id="outline-container-org341b1c7" class="outline-3">
+<h3 id="org341b1c7"><span class="section-number-3">1.2.</span> Hexagonal city</h3>
<div class="outline-text-3" id="text-1-2">
-<div id="orgf72edb4" class="figure">
+<div id="org578c9ea" class="figure">
<p><img src="hexagonal city, 1.jpeg" alt="hexagonal city, 1.jpeg" class="responsive-img" />
</p>
</div>
-<div id="orgeddbab1" class="figure">
+<div id="org49e589c" class="figure">
<p><img src="hexagonal city, 2.jpeg" alt="hexagonal city, 2.jpeg" class="responsive-img" />
</p>
</div>
-<div id="org8ae2b52" class="figure">
+<div id="orgd3dd815" class="figure">
<p><img src="hexagonal city, 3.jpeg" alt="hexagonal city, 3.jpeg" class="responsive-img" />
</p>
</div>
</div>
</div>
</div>
-<div id="outline-container-orgc7907d1" class="outline-2">
-<h2 id="orgc7907d1"><span class="section-number-2">2.</span> Scene description language</h2>
+<div id="outline-container-org9b1aae2" class="outline-2">
+<h2 id="org9b1aae2"><span class="section-number-2">2.</span> Scene description language</h2>
<div class="outline-text-2" id="text-2">
<p>
See also examples.
</p>
</div>
-<div id="outline-container-org5148d75" class="outline-3">
-<h3 id="org5148d75"><span class="section-number-3">2.1.</span> here</h3>
+<div id="outline-container-org316df2f" class="outline-3">
+<h3 id="org316df2f"><span class="section-number-3">2.1.</span> here</h3>
<div class="outline-text-3" id="text-2-1">
<pre class="example">
here
</p>
</div>
</div>
-<div id="outline-container-orgbec57b2" class="outline-3">
-<h3 id="orgbec57b2"><span class="section-number-3">2.2.</span> p</h3>
+<div id="outline-container-org4bf4fc2" class="outline-3">
+<h3 id="org4bf4fc2"><span class="section-number-3">2.2.</span> p</h3>
<div class="outline-text-3" id="text-2-2">
<pre class="example">
p x y z
</p>
</div>
</div>
-<div id="outline-container-orgfc6c719" class="outline-3">
-<h3 id="orgfc6c719"><span class="section-number-3">2.3.</span> f</h3>
+<div id="outline-container-org00e2046" class="outline-3">
+<h3 id="org00e2046"><span class="section-number-3">2.3.</span> f</h3>
<div class="outline-text-3" id="text-2-3">
<pre class="example">
f p1 p2 p3 p4
</p>
</div>
</div>
-<div id="outline-container-org52097d3" class="outline-3">
-<h3 id="org52097d3"><span class="section-number-3">2.4.</span> warn</h3>
+<div id="outline-container-org0557bd0" class="outline-3">
+<h3 id="org0557bd0"><span class="section-number-3">2.4.</span> warn</h3>
<div class="outline-text-3" id="text-2-4">
<pre class="example">
warn <message>
</p>
</div>
</div>
-<div id="outline-container-org5a8e41b" class="outline-3">
-<h3 id="org5a8e41b"><span class="section-number-3">2.5.</span> end</h3>
+<div id="outline-container-org466d971" class="outline-3">
+<h3 id="org466d971"><span class="section-number-3">2.5.</span> end</h3>
<div class="outline-text-3" id="text-2-5">
<pre class="example">
end
</p>
</div>
</div>
-<div id="outline-container-orgde495ab" class="outline-3">
-<h3 id="orgde495ab"><span class="section-number-3">2.6.</span> mtl</h3>
+<div id="outline-container-org7919a34" class="outline-3">
+<h3 id="org7919a34"><span class="section-number-3">2.6.</span> mtl</h3>
<div class="outline-text-3" id="text-2-6">
<pre class="example">
mtl material
</p>
</div>
</div>
-<div id="outline-container-org7cb3699" class="outline-3">
-<h3 id="org7cb3699"><span class="section-number-3">2.7.</span> mtlrnd</h3>
+<div id="outline-container-org0faf236" class="outline-3">
+<h3 id="org0faf236"><span class="section-number-3">2.7.</span> mtlrnd</h3>
<div class="outline-text-3" id="text-2-7">
<pre class="example">
mtlrnd material ...
</p>
</div>
</div>
-<div id="outline-container-orgd335276" class="outline-3">
-<h3 id="orgd335276"><span class="section-number-3">2.8.</span> obj</h3>
+<div id="outline-container-orgd82eebd" class="outline-3">
+<h3 id="orgd82eebd"><span class="section-number-3">2.8.</span> obj</h3>
<div class="outline-text-3" id="text-2-8">
<pre class="example">
obj object xz45 xy20 x+3 y*2
</p>
-<div id="org2c85b00" class="figure">
+<div id="org6af6b77" class="figure">
<p><img src="rotation.png" alt="rotation.png" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org9abf1f6" class="outline-3">
-<h3 id="org9abf1f6"><span class="section-number-3">2.9.</span> rnd</h3>
+<div id="outline-container-orgd7276b3" class="outline-3">
+<h3 id="orgd7276b3"><span class="section-number-3">2.9.</span> rnd</h3>
<div class="outline-text-3" id="text-2-9">
<pre class="example">
rnd p^1^2^3 p^7^2^1
</p>
</div>
</div>
-<div id="outline-container-org8d1f106" class="outline-3">
-<h3 id="org8d1f106"><span class="section-number-3">2.10.</span> #</h3>
+<div id="outline-container-orgdff1d90" class="outline-3">
+<h3 id="orgdff1d90"><span class="section-number-3">2.10.</span> #</h3>
<div class="outline-text-3" id="text-2-10">
<pre class="example">
# whatever text
</p>
</div>
</div>
-<div id="outline-container-org01937d0" class="outline-3">
-<h3 id="org01937d0"><span class="section-number-3">2.11.</span> out</h3>
+<div id="outline-container-org01758ef" class="outline-3">
+<h3 id="org01758ef"><span class="section-number-3">2.11.</span> out</h3>
<div class="outline-text-3" id="text-2-11">
<pre class="example">
out file
</p>
</div>
</div>
-<div id="outline-container-org26af06c" class="outline-3">
-<h3 id="org26af06c"><span class="section-number-3">2.12.</span> set</h3>
+<div id="outline-container-org8b8db69" class="outline-3">
+<h3 id="org8b8db69"><span class="section-number-3">2.12.</span> set</h3>
<div class="outline-text-3" id="text-2-12">
<pre class="example">
set variable contents
</p>
</div>
</div>
-<div id="outline-container-org126d947" class="outline-3">
-<h3 id="org126d947"><span class="section-number-3">2.13.</span> variables usage</h3>
+<div id="outline-container-org6fd0dfe" class="outline-3">
+<h3 id="org6fd0dfe"><span class="section-number-3">2.13.</span> variables usage</h3>
<div class="outline-text-3" id="text-2-13">
<pre class="example">
anycommand %1 anything
</p>
</div>
</div>
-<div id="outline-container-orgb154baa" class="outline-3">
-<h3 id="orgb154baa"><span class="section-number-3">2.14.</span> cmp</h3>
+<div id="outline-container-org8ec9431" class="outline-3">
+<h3 id="org8ec9431"><span class="section-number-3">2.14.</span> cmp</h3>
<div class="outline-text-3" id="text-2-14">
<pre class="example">
cmp flag string1 string2
</p>
</div>
</div>
-<div id="outline-container-orgf6e6283" class="outline-3">
-<h3 id="orgf6e6283"><span class="section-number-3">2.15.</span> ?</h3>
+<div id="outline-container-org4fee636" class="outline-3">
+<h3 id="org4fee636"><span class="section-number-3">2.15.</span> ?</h3>
<div class="outline-text-3" id="text-2-15">
<pre class="example">
?flag anycommand
</p>
</div>
</div>
-<div id="outline-container-org36815a1" class="outline-3">
-<h3 id="org36815a1"><span class="section-number-3">2.16.</span> dum</h3>
+<div id="outline-container-orgf2bfe2b" class="outline-3">
+<h3 id="orgf2bfe2b"><span class="section-number-3">2.16.</span> dum</h3>
<div class="outline-text-3" id="text-2-16">
<pre class="example">
dum
</div>
</div>
-<div id="outline-container-org45443e3" class="outline-2">
-<h2 id="org45443e3"><span class="section-number-2">3.</span> Installation</h2>
+<div id="outline-container-orgede2524" class="outline-2">
+<h2 id="orgede2524"><span class="section-number-2">3.</span> Installation</h2>
<div class="outline-text-2" id="text-3">
<p>
Edit <b>bin/3dparse.bas</b> file and update include path in there.
</p>
</div>
-<div id="outline-container-org7a64d30" class="outline-3">
-<h3 id="org7a64d30"><span class="section-number-3">3.1.</span> System requirements</h3>
+<div id="outline-container-org74398fb" class="outline-3">
+<h3 id="org74398fb"><span class="section-number-3">3.1.</span> System requirements</h3>
<div class="outline-text-3" id="text-3-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-org7344c27" class="outline-3">
-<h3 id="org7344c27"><span class="section-number-3">3.2.</span> Directory layout</h3>
+<div id="outline-container-org666d0f8" class="outline-3">
+<h3 id="org666d0f8"><span class="section-number-3">3.2.</span> Directory layout</h3>
<div class="outline-text-3" id="text-3-2">
<dl class="org-dl">
<dt>bin</dt><dd><dl class="org-dl">
</div>
</div>
-<div id="outline-container-org772bf80" class="outline-2">
-<h2 id="org772bf80"><span class="section-number-2">4.</span> Usage</h2>
+<div id="outline-container-org4832d2c" class="outline-2">
+<h2 id="org4832d2c"><span class="section-number-2">4.</span> Usage</h2>
<div class="outline-text-2" id="text-4">
<p>
Make sure you have QB binaries in your PATH. Execute
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-28 ma 03:33</p>
+<p class="date">Created: 2025-07-28 ma 18:33</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-28 ma 03:33 -->
+<!-- 2025-07-28 ma 18:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Miscellaneous 3D graphics demos</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org7773f6b">1. Rotating exclamation mark</a></li>
-<li><a href="#org3e8525d">2. 3D bouncing ball</a></li>
-<li><a href="#orgbda18f8">3. 3D text in a room</a></li>
-<li><a href="#org3f9cc1b">4. 3D bouncing cubes on grid floor</a></li>
-<li><a href="#org59197c7">5. Matrix math for rotation in 3D space</a></li>
-<li><a href="#orgb8734ec">6. Maze explorer</a></li>
-<li><a href="#org33e3a25">7. Tank animation</a></li>
-<li><a href="#orgfb42a5b">8. Tiled room</a></li>
+<li><a href="#orgc121154">1. Rotating exclamation mark</a></li>
+<li><a href="#orgaabd00a">2. 3D bouncing ball</a></li>
+<li><a href="#orgdfff0f8">3. 3D text in a room</a></li>
+<li><a href="#orgdc9fdc9">4. 3D bouncing cubes on grid floor</a></li>
+<li><a href="#org6cda93d">5. Matrix math for rotation in 3D space</a></li>
+<li><a href="#org544f5f6">6. Maze explorer</a></li>
+<li><a href="#orgb85d045">7. Tank animation</a></li>
+<li><a href="#orgb9c728a">8. Tiled room</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org7773f6b" class="outline-2">
-<h2 id="org7773f6b"><span class="section-number-2">1.</span> Rotating exclamation mark</h2>
+<div id="outline-container-orgc121154" class="outline-2">
+<h2 id="orgc121154"><span class="section-number-2">1.</span> Rotating exclamation mark</h2>
<div class="outline-text-2" id="text-1">
<p>
Wireframe 3D model of a rotating exclamation mark.
</div>
-<div id="outline-container-org3e8525d" class="outline-2">
-<h2 id="org3e8525d"><span class="section-number-2">2.</span> 3D bouncing ball</h2>
+<div id="outline-container-orgaabd00a" class="outline-2">
+<h2 id="orgaabd00a"><span class="section-number-2">2.</span> 3D bouncing ball</h2>
<div class="outline-text-2" id="text-2">
<p>
3D ball made of point cloud.
</div>
-<div id="outline-container-orgbda18f8" class="outline-2">
-<h2 id="orgbda18f8"><span class="section-number-2">3.</span> 3D text in a room</h2>
+<div id="outline-container-orgdfff0f8" class="outline-2">
+<h2 id="orgdfff0f8"><span class="section-number-2">3.</span> 3D text in a room</h2>
<div class="outline-text-2" id="text-3">
<p>
Wireframe 3D text hanging in a wireframe 3D room. User can look and
</div>
-<div id="outline-container-org3f9cc1b" class="outline-2">
-<h2 id="org3f9cc1b"><span class="section-number-2">4.</span> 3D bouncing cubes on grid floor</h2>
+<div id="outline-container-orgdc9fdc9" class="outline-2">
+<h2 id="orgdc9fdc9"><span class="section-number-2">4.</span> 3D bouncing cubes on grid floor</h2>
<div class="outline-text-2" id="text-4">
<p>
3D wireframe cubes bouncing on a grid floor, creating an immersive and
</div>
-<div id="outline-container-org59197c7" class="outline-2">
-<h2 id="org59197c7"><span class="section-number-2">5.</span> Matrix math for rotation in 3D space</h2>
+<div id="outline-container-org6cda93d" class="outline-2">
+<h2 id="org6cda93d"><span class="section-number-2">5.</span> Matrix math for rotation in 3D space</h2>
<div class="outline-text-2" id="text-5">
<p>
Instead of combining simple 2D rotors, pixels in this 3D space are
</div>
-<div id="outline-container-orgb8734ec" class="outline-2">
-<h2 id="orgb8734ec"><span class="section-number-2">6.</span> Maze explorer</h2>
+<div id="outline-container-org544f5f6" class="outline-2">
+<h2 id="org544f5f6"><span class="section-number-2">6.</span> Maze explorer</h2>
<div class="outline-text-2" id="text-6">
<p>
TODO: add description
</p>
-<div id="org5fab01b" class="figure">
+<div id="orgf647c59" class="figure">
<p><a href="Maze%20explorer.bas" class="responsive-img"><img src="Maze%20explorer.png" alt="Maze%20explorer.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org33e3a25" class="outline-2">
-<h2 id="org33e3a25"><span class="section-number-2">7.</span> Tank animation</h2>
+<div id="outline-container-orgb85d045" class="outline-2">
+<h2 id="orgb85d045"><span class="section-number-2">7.</span> Tank animation</h2>
<div class="outline-text-2" id="text-7">
<p>
Animated tank driving through the bridge back and forward. User can
</div>
-<div id="outline-container-orgfb42a5b" class="outline-2">
-<h2 id="orgfb42a5b"><span class="section-number-2">8.</span> Tiled room</h2>
+<div id="outline-container-orgb9c728a" class="outline-2">
+<h2 id="orgb9c728a"><span class="section-number-2">8.</span> Tiled room</h2>
<div class="outline-text-2" id="text-8">
<p>
Room with some tiles on the wall and on the floor. User can freely fly
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-28 ma 03:33</p>
+<p class="date">Created: 2025-07-28 ma 18:33</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-28 ma 03:33 -->
+<!-- 2025-07-28 ma 18:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Space themed 3D graphics</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org3423fbf">1. Galaxy explorer</a></li>
-<li><a href="#org514bffe">2. Rocket simulator</a></li>
-<li><a href="#orgadb0264">3. Stars</a></li>
-<li><a href="#org9c279ca">4. Universe explorer</a></li>
+<li><a href="#org0c63944">1. Galaxy explorer</a></li>
+<li><a href="#orgde9c8ca">2. Rocket simulator</a></li>
+<li><a href="#org00ddd52">3. Stars</a></li>
+<li><a href="#orgb62b8b3">4. Universe explorer</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org3423fbf" class="outline-2">
-<h2 id="org3423fbf"><span class="section-number-2">1.</span> Galaxy explorer</h2>
+<div id="outline-container-org0c63944" class="outline-2">
+<h2 id="org0c63944"><span class="section-number-2">1.</span> Galaxy explorer</h2>
<div class="outline-text-2" id="text-1">
<p>
TODO: add description
</p>
-<div id="org99ca7c0" class="figure">
+<div id="orgb4e6a2d" class="figure">
<p><a href="Galaxy%20explorer.bas" class="responsive-img"><img src="Galaxy%20explorer.png" alt="Galaxy%20explorer.png" class="responsive-img" /></a>
</p>
</div>
</div>
-<div id="outline-container-org514bffe" class="outline-2">
-<h2 id="org514bffe"><span class="section-number-2">2.</span> Rocket simulator</h2>
+<div id="outline-container-orgde9c8ca" class="outline-2">
+<h2 id="orgde9c8ca"><span class="section-number-2">2.</span> Rocket simulator</h2>
<div class="outline-text-2" id="text-2">
<p>
TODO: add description
</div>
-<div id="outline-container-orgadb0264" class="outline-2">
-<h2 id="orgadb0264"><span class="section-number-2">3.</span> Stars</h2>
+<div id="outline-container-org00ddd52" class="outline-2">
+<h2 id="org00ddd52"><span class="section-number-2">3.</span> Stars</h2>
<div class="outline-text-2" id="text-3">
<p>
TODO: add description
</div>
</div>
-<div id="outline-container-org9c279ca" class="outline-2">
-<h2 id="org9c279ca"><span class="section-number-2">4.</span> Universe explorer</h2>
+<div id="outline-container-orgb62b8b3" class="outline-2">
+<h2 id="orgb62b8b3"><span class="section-number-2">4.</span> Universe explorer</h2>
<div class="outline-text-2" id="text-4">
<p>
TODO: add description
</p>
-<div id="org080be9c" class="figure">
+<div id="orgc4aa7cd" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/1.png" alt="1.png" class="responsive-img" /></a>
</p>
</div>
-<div id="org83b6225" class="figure">
+<div id="org91d3014" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/2.png" alt="2.png" class="responsive-img" /></a>
</p>
</div>
-<div id="org31f0834" class="figure">
+<div id="org015c7f5" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/3.png" alt="3.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-28 ma 03:33</p>
+<p class="date">Created: 2025-07-28 ma 18:33</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
[[file:Math/Lottery/Lottery%20analysis.bas][Source code]]
-
* Misc
:PROPERTIES:
:ID: 3587240c-1d50-478d-b850-04ebc8dc63c7
#+attr_latex: :width 1000px
[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette,%203.png]]
-
* Download
** Getting the source code