<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://pablomedina.codeberg.page/feed.xml" rel="self" type="application/atom+xml" /><link href="https://pablomedina.codeberg.page/" rel="alternate" type="text/html" /><updated>2026-11-11T13:15:00+01:00</updated><id>https://pablomedina.codeberg.page/feed.xml</id><title type="html">Pablo Medina</title><subtitle>Here you can find some of the projects I have worked on with their respective repos</subtitle><entry><title type="html">Complex 3D scene with documentation</title><link href="https://pablomedina.codeberg.page/2026/11/11/Complex-3D-scene.html" rel="alternate" type="text/html" title="Complex 3D scene with documentation" /><published>2026-11-11T00:00:00+01:00</published><updated>2026-11-11T00:00:00+01:00</updated><id>https://pablomedina.codeberg.page/2026/11/11/Complex-3D-scene</id><content type="html" xml:base="https://pablomedina.codeberg.page/2026/11/11/Complex-3D-scene.html"><![CDATA[<ul>
  <li>Implementation of 3D scene with 9 degrees of freedom.</li>
  <li>Language: C++.
    <ul>
      <li>Libraries: OpenGL with Qt for interface and I/O.</li>
    </ul>
  </li>
  <li>A 3D graph was planned beforehand with a document spanning 7 pages to see how the different parts of the model come together before coding.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Implementation of 3D scene with 9 degrees of freedom. Language: C++. Libraries: OpenGL with Qt for interface and I/O. A 3D graph was planned beforehand with a document spanning 7 pages to see how the different parts of the model come together before coding.]]></summary></entry><entry><title type="html">UGR signature</title><link href="https://pablomedina.codeberg.page/2026/11/11/UGR-signature.html" rel="alternate" type="text/html" title="UGR signature" /><published>2026-11-11T00:00:00+01:00</published><updated>2026-11-11T00:00:00+01:00</updated><id>https://pablomedina.codeberg.page/2026/11/11/UGR-signature</id><content type="html" xml:base="https://pablomedina.codeberg.page/2026/11/11/UGR-signature.html"><![CDATA[<ul>
  <li>Maintenance of web for generating email signatures for employees at University of Granada.</li>
  <li>Language: JavaScript and HTML.</li>
  <li>Maintained during internship at the Free Software Office at the University of Granada.</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Maintenance of web for generating email signatures for employees at University of Granada. Language: JavaScript and HTML. Maintained during internship at the Free Software Office at the University of Granada.]]></summary></entry><entry><title type="html">Implementing Rayleigh scattering: Realistic 3D visualizer of the atmosphere</title><link href="https://pablomedina.codeberg.page/2026/11/11/rayleigh-visualizer.html" rel="alternate" type="text/html" title="Implementing Rayleigh scattering: Realistic 3D visualizer of the atmosphere" /><published>2026-11-11T00:00:00+01:00</published><updated>2026-11-11T00:00:00+01:00</updated><id>https://pablomedina.codeberg.page/2026/11/11/rayleigh-visualizer</id><content type="html" xml:base="https://pablomedina.codeberg.page/2026/11/11/rayleigh-visualizer.html"><![CDATA[<ul>
  <li>My bachelor thesis, tutored by <a href="https://scholar.google.com/citations?user=Tf9V918AAAAJ&amp;hl=es">Domingo Martin</a>.</li>
  <li>The thesis program renders using <a href="https://developer.nvidia.com/gpugems/gpugems2/part-ii-shading-lighting-and-shadows/chapter-16-accurate-atmospheric-scattering">O’Neil’s shaders</a> as a base.</li>
  <li>Language: C++ and GLSL</li>
  <li>Included libraries:
    <ul>
      <li>OpengGL 4 for graphics generation</li>
      <li>Qt for GUI generation and I/O handling</li>
      <li>SuperNOVAS: Astrometry library for getting a realistic earth position and rotation based on a time selected by the user.</li>
      <li>(Scenegraph)[https://github.com/Amdrel/scenegraph-demo]: Used the code as a base and changed it to the project’s need for building a flexible scene graph.</li>
      <li>(CTikz)[https://github.com/mchlbrnhrd/CTikz/tree/master]: The original library exports data to a CTikz diagram. I changed it to export the scene graph to a diagram using the <a href="https://ctan.org/pkg/forest">FoRest package</a> for LaTeX documents.</li>
    </ul>
  </li>
  <li>Outside of the main program, I created Python scripts to generate SVG diagrams of 3D models using the (svg3d library)[https://github.com/prideout/svg3d]</li>
</ul>

<p>(Code available on gitlab)[https://gitlab.com/opengl3263312/visualizador-rayleigh-mie]</p>]]></content><author><name></name></author><summary type="html"><![CDATA[My bachelor thesis, tutored by Domingo Martin. The thesis program renders using O’Neil’s shaders as a base. Language: C++ and GLSL Included libraries: OpengGL 4 for graphics generation Qt for GUI generation and I/O handling SuperNOVAS: Astrometry library for getting a realistic earth position and rotation based on a time selected by the user. (Scenegraph)[https://github.com/Amdrel/scenegraph-demo]: Used the code as a base and changed it to the project’s need for building a flexible scene graph. (CTikz)[https://github.com/mchlbrnhrd/CTikz/tree/master]: The original library exports data to a CTikz diagram. I changed it to export the scene graph to a diagram using the FoRest package for LaTeX documents. Outside of the main program, I created Python scripts to generate SVG diagrams of 3D models using the (svg3d library)[https://github.com/prideout/svg3d]]]></summary></entry><entry><title type="html">Brogue Map Extractor and Map Importer(WIP)</title><link href="https://pablomedina.codeberg.page/2026/11/10/brogue-map-extractor.html" rel="alternate" type="text/html" title="Brogue Map Extractor and Map Importer(WIP)" /><published>2026-11-10T00:00:00+01:00</published><updated>2026-11-10T00:00:00+01:00</updated><id>https://pablomedina.codeberg.page/2026/11/10/brogue-map-extractor</id><content type="html" xml:base="https://pablomedina.codeberg.page/2026/11/10/brogue-map-extractor.html"><![CDATA[<ul>
  <li>Extraction of Brogue’s procedural map for 3D background generation in Blender.</li>
  <li>The project consists of two programs:
    <ul>
      <li>A fork of Brogue CE’s original code to extract the map from a saved game.
        <ul>
          <li>Inclusion of the <a href="https://github.com/json-c/">json-c</a> libray for JSON exporting.</li>
          <li><a href="https://codeberg.org/PabloMedinaCode/BrogueMapExtractor">Code repository</a></li>
        </ul>
      </li>
      <li>A set of scripts using Blender’s python integration to read the maps and creating a scene on blender.
        <ul>
          <li><a href="https://codeberg.org/PabloMedinaCode/BrogueMapImporter">Code repository</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

<p><a href="https://github.com/PabloSpiegel/Nonogramas/tree/master">Code on github</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Extraction of Brogue’s procedural map for 3D background generation in Blender. The project consists of two programs: A fork of Brogue CE’s original code to extract the map from a saved game. Inclusion of the json-c libray for JSON exporting. Code repository A set of scripts using Blender’s python integration to read the maps and creating a scene on blender. Code repository]]></summary></entry><entry><title type="html">Nonogram server and client</title><link href="https://pablomedina.codeberg.page/2026/11/10/nonogram-server-and-client.html" rel="alternate" type="text/html" title="Nonogram server and client" /><published>2026-11-10T00:00:00+01:00</published><updated>2026-11-10T00:00:00+01:00</updated><id>https://pablomedina.codeberg.page/2026/11/10/nonogram-server-and-client</id><content type="html" xml:base="https://pablomedina.codeberg.page/2026/11/10/nonogram-server-and-client.html"><![CDATA[<ul>
  <li>Implementation of TCP/IP app protocol with separate client and server programs.</li>
  <li>Language: Java
    <ul>
      <li>Libraries: Swing for GUI, Socket for communication between the two machines.</li>
    </ul>
  </li>
</ul>

<p><a href="https://github.com/PabloSpiegel/Nonogramas/tree/master">Code on github</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Implementation of TCP/IP app protocol with separate client and server programs. Language: Java Libraries: Swing for GUI, Socket for communication between the two machines.]]></summary></entry><entry><title type="html">Tetris Clone</title><link href="https://pablomedina.codeberg.page/2026/11/10/tetris-clone.html" rel="alternate" type="text/html" title="Tetris Clone" /><published>2026-11-10T00:00:00+01:00</published><updated>2026-11-10T00:00:00+01:00</updated><id>https://pablomedina.codeberg.page/2026/11/10/tetris-clone</id><content type="html" xml:base="https://pablomedina.codeberg.page/2026/11/10/tetris-clone.html"><![CDATA[<ul>
  <li>Language: C++.
    <ul>
      <li>Libraries: <a href="https://liballeg.org/">allegro</a> for graphics and I/O.</li>
    </ul>
  </li>
  <li>Concepts learned:
    <ul>
      <li>It was my first incursion in computer graphics, teaching me how to handle sprites.</li>
      <li>How to do a game loop in real time  and input events.
allegro.</li>
      <li>It was also the first time documented a project. I generated the documentation with <a href="https://www.doxygen.nl/">doxygen</a>
<a href="https://github.com/PabloSpiegel/Tetris">Code on GitHub</a></li>
    </ul>
  </li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Language: C++. Libraries: allegro for graphics and I/O. Concepts learned: It was my first incursion in computer graphics, teaching me how to handle sprites. How to do a game loop in real time and input events. allegro. It was also the first time documented a project. I generated the documentation with doxygen Code on GitHub]]></summary></entry></feed>