<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://fury.gl/</id>
  <title>Blog - Posts by Praneeth Shetty</title>
  <updated>2025-09-11T13:56:12.143422+00:00</updated>
  <link href="https://fury.gl/"/>
  <link href="https://fury.gl/blog/author/praneeth-shetty/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.12">ABlog</generator>
  <entry>
    <id>https://fury.gl/posts/2023/2023-08-25-final-report-praneeth.html</id>
    <title>Google Summer of Code Final Work Product</title>
    <updated>2023-08-25T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;a class="reference external image-reference" href="https://summerofcode.withgoogle.com/programs/2023/projects/BqfBWfwS"&gt;&lt;img alt="https://developers.google.com/open-source/gsoc/resources/downloads/GSoC-logo-horizontal.svg" class="align-center" src="https://developers.google.com/open-source/gsoc/resources/downloads/GSoC-logo-horizontal.svg" style="height: 50px;" /&gt;
&lt;/a&gt;
&lt;a class="reference external image-reference" href="https://summerofcode.withgoogle.com/programs/2023/organizations/python-software-foundation"&gt;&lt;img alt="https://www.python.org/static/community_logos/python-logo.png" src="https://www.python.org/static/community_logos/python-logo.png" style="width: 40%;" /&gt;
&lt;/a&gt;
&lt;a class="reference external image-reference" href="https://fury.gl/latest/index.html"&gt;&lt;img alt="https://python-gsoc.org/logos/FURY.png" src="https://python-gsoc.org/logos/FURY.png" style="width: 25%;" /&gt;
&lt;/a&gt;
&lt;section id="google-summer-of-code-final-work-product"&gt;

&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; Praneeth Shetty&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organisation:&lt;/strong&gt; Python Software Foundation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sub-Organisation:&lt;/strong&gt; FURY&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; &lt;a class="reference external" href="https://github.com/fury-gl/fury/wiki/Google-Summer-of-Code-2023-(GSOC2023)#project-5-update-user-interface-widget--explore-new-ui-framework"&gt;FURY - Update user interface widget + Explore new UI Framework&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;section id="proposed-objectives"&gt;
&lt;h2&gt;Proposed Objectives&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;SpinBoxUI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scrollbar as Independent Element&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FileDialog&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TreeUI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AccordionUI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ColorPickerUI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;dl class="simple"&gt;
&lt;dt&gt;Stretch Goals:&lt;/dt&gt;&lt;dd&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Exploring new UI Framework&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implementing Borders for UI elements&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="objectives-completed"&gt;
&lt;h2&gt;Objectives Completed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;SpinBoxUI:&lt;/strong&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; element is essential for user interfaces as it allows users to pick a numeric value from a set range. While we had an active pull request (PR) to add this element, updates in the main code caused conflicts and required further changes for added features. At one point, we noticed that text alignment wasn’t centered properly within the box due to a flaw. To fix this, we began a PR to adjust the alignment, but it turned into a larger refactoring of the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;, a core component connected to various parts. This was a complex task that needed careful handling. After sorting out the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;, we returned to the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; and made a few tweaks. Once we were confident with the changes, the PR was successfully merged after thorough review and testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SpinBoxUI (Merged)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/499"&gt;fury-gl/fury#499&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;img alt="SpinBoxUI" class="align-center" src="https://user-images.githubusercontent.com/64432063/263165327-c0b19cdc-9ebd-433a-8ff1-99e706a76508.gif" style="height: 500px;" /&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;`TextBlock2D` Refactoring:&lt;/strong&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;This was a significant aspect of the GSoC period and occupied a substantial portion of the timeline. The process began when we observed misaligned text in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt;, as previously discussed. The root cause of the alignment issue was the mispositioning of the text actor concerning the background actor. The text actor’s independent repositioning based on justification conflicted with the static position of the background actor, leading to the alignment problem.&lt;/p&gt;
&lt;p&gt;To address this, the initial focus was on resolving the justification issue. However, as the work progressed, we recognized that solely adjusting justification would not suffice. The alignment was inherently linked to the UI’s size, which was currently retrieved only when a valid scene was present. This approach lacked scalability and efficiency, as it constrained size retrieval to scene availability.&lt;/p&gt;
&lt;p&gt;To overcome these challenges, we devised a solution involving the creation of a bounding box around the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;. This bounding box would encapsulate the size information, enabling proper text alignment. This endeavor spanned several weeks of development, culminating in a finalized solution that underwent rigorous testing before being merged.&lt;/p&gt;
&lt;p&gt;As a result of this refactoring effort, the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt; now offers three distinct modes:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fully Static Background:&lt;/strong&gt; This mode requires background setup during initialization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dynamic Background:&lt;/strong&gt; The background dynamically scales based on the text content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auto Font Scale Mode:&lt;/strong&gt; The font within the background box automatically scales to fill the available space.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;An issue has been identified with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt; where its text actor aligns with the top boundary of the background actor, especially noticeable with letters like “g,” “y,” and “j”. These letters extend beyond the baseline of standard alphabets, causing the text box to shift upwards.&lt;/p&gt;
&lt;p&gt;However, resolving this matter is complex. Adjusting the text’s position might lead to it touching the bottom boundary, especially in font scale mode, resulting in unexpected positioning and transformations. To address this, the plan is to defer discussions about this matter until after GSoC, allowing for thorough consideration and solutions.&lt;/p&gt;
&lt;p&gt;For more detailed insights into the individual steps and nuances of this process, you can refer to the comprehensive weekly blog post provided below. It delves into the entire journey of this &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt; refactoring effort.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fixing Justification Issue - 1st Draft (Closed)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/790"&gt;fury-gl/fury#790&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding BoundingBox and fixing Justificaiton (Merged)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/803"&gt;fury-gl/fury#803&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding getters and setter for properties (Merged)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/830"&gt;fury-gl/fury#830&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Text Offset PR (Closed)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/837"&gt;fury-gl/fury#837&lt;/a&gt;&lt;/p&gt;
&lt;img alt="TextBlock2D Feature Demo" class="align-center" src="https://user-images.githubusercontent.com/64432063/258603191-d540105a-0612-450e-8ae3-ca8aa87916e6.gif" style="height: 500px;" /&gt;
&lt;img alt="TextBlock2D All Justification" class="align-center" src="https://github-production-user-asset-6210df.s3.amazonaws.com/64432063/254652569-94212105-7259-48da-8fdc-41ee987bda84.png" style="height: 500px;" /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;ScrollbarUI as Independent Element:&lt;/strong&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;We initially planned to make the scrollbar independent based on PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/16"&gt;#16&lt;/a&gt;. The main goal was to avoid redundancy by not rewriting the scrollbar code for each element that requires it, such as the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileMenu2D&lt;/span&gt;&lt;/code&gt;. However, upon further analysis, we realized that elements like the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileMenu2D&lt;/span&gt;&lt;/code&gt; and others utilize the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Listbox2D&lt;/span&gt;&lt;/code&gt;, which already includes an integrated scrollbar. We also examined other UI libraries and found that they also have independent scrollbars but lack a proper use case. Typically, display containers like &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Listbox2D&lt;/span&gt;&lt;/code&gt; are directly used instead of utilizing an independent scrollbar.&lt;/p&gt;
&lt;p&gt;Based on these findings, we have decided to close all related issues and pull requests for now. If the need arises in the future, we can revisit this topic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topic:&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/discussions/816"&gt;fury-gl/fury#816&lt;/a&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="other-objectives"&gt;
&lt;h2&gt;Other Objectives&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Reviewing &amp;amp; Merging:&lt;/strong&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;In this phase, my focus was not on specific coding but rather on facilitating the completion of ongoing PRs. Here are two instances where I played a role:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CardUI PR:&lt;/strong&gt;
I assisted with the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;CardUI&lt;/span&gt;&lt;/code&gt; PR by aiding in the rebase process and reviewing the changes. The CardUI is a simple UI element consisting of an image and a description, designed to function like a flash card. I worked closely with my mentor to ensure a smooth rebase and review process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ComboBox Issue:&lt;/strong&gt;
There was an issue with the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ComboBox2D&lt;/span&gt;&lt;/code&gt; functionality, where adding it to a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TabUI&lt;/span&gt;&lt;/code&gt; caused all elements to open simultaneously, which shouldn’t be the case. I tested various PRs addressing this problem and identified a suitable solution. I then helped the lead in reviewing the PR that fixed the issue, which was successfully merged.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CardUI (Merged)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/398"&gt;fury-gl/fury#398&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ComboBox Flaw (Merged)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/768"&gt;fury-gl/fury#768&lt;/a&gt;&lt;/p&gt;
&lt;img alt="CardUI" class="align-center" src="https://user-images.githubusercontent.com/54466356/112532305-b090ef80-8dce-11eb-90a0-8d06eed55993.png" style="height: 500px;" /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Updating Broken Website Links:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;I addressed an issue with malfunctioning links in the Scientific Section of the website. The problem emerged from alterations introduced in PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/769"&gt;#769&lt;/a&gt;. These changes consolidated demos and examples into a unified “auto_examples” folder, and a toml file was utilized to retrieve this data and construct examples. However, this led to challenges with the paths employed in website generation. My responsibility was to rectify these links, ensuring they accurately direct users to the intended content.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Updating Broken Links (Merged)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/820"&gt;fury-gl/fury#820&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="objectives-in-progress"&gt;
&lt;h2&gt;Objectives in Progress&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;FileDialogUI:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;An existing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; PR by Soham (&lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/294"&gt;#294&lt;/a&gt;) was worked upon. The primary task was to rebase the PR to match the current UI structure, resolving compatibility concerns with the older base. In PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/832"&gt;#832&lt;/a&gt;, we detailed issues encompassing resizing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; and components, addressing text overflow, fixing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ZeroDivisionError&lt;/span&gt;&lt;/code&gt;, and correcting &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ListBox2D&lt;/span&gt;&lt;/code&gt; item positioning. The PR is complete with comprehensive testing and documentation. Presently, it’s undergoing review, and upon approval, it will be prepared for integration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Soham’s FileDialog (Closed)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/294"&gt;fury-gl/fury#294&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;FileDialogUI (Under Review)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/832"&gt;fury-gl/fury#832&lt;/a&gt;&lt;/p&gt;
&lt;img alt="FileDialogUI" class="align-center" src="https://user-images.githubusercontent.com/64432063/263189092-6b0891d5-f0ef-4185-8b17-c7104f1a7d60.gif" style="height: 500px;" /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TreeUI:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Continuing Antriksh’s initial PR for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TreeUI&lt;/span&gt;&lt;/code&gt; posed some challenges. Antriksh had set the foundation, and I picked up from there. The main issue was with the visibility of TreeUI due to updates in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;set_visibility&lt;/span&gt;&lt;/code&gt; method of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Panel2D&lt;/span&gt;&lt;/code&gt;. These updates affected how &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TreeUI&lt;/span&gt;&lt;/code&gt; was displayed, and after investigating the actors involved, it was clear that the visibility features had changed. This took some time to figure out, and I had a helpful pair programming session with my mentor, Serge, to narrow down the problem. Now, I’ve updated the code to address this issue. However, I’m still a bit cautious about potential future problems. The PR is now ready for review.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TreeUI (In Progress)&lt;/strong&gt; - &lt;a class="github reference external" href="https://github.com/fury-gl/fury/pull/821"&gt;fury-gl/fury#821&lt;/a&gt;&lt;/p&gt;
&lt;img alt="TreeUI" class="align-center" src="https://user-images.githubusercontent.com/64432063/263237308-70e77ba0-1ce8-449e-a79c-d5e0fbb58b45.gif" style="height: 500px;" /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="gsoc-weekly-blogs"&gt;
&lt;h2&gt;GSoC Weekly Blogs&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;My blog posts can be found at &lt;a class="reference external" href="https://fury.gl/latest/blog/author/praneeth-shetty.html"&gt;FURY website&lt;/a&gt;
and &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/"&gt;Python GSoC blog&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="timeline"&gt;
&lt;h2&gt;Timeline&lt;/h2&gt;
&lt;table class="table"&gt;
&lt;thead&gt;
&lt;tr class="row-odd"&gt;&lt;th class="head"&gt;&lt;p&gt;Date&lt;/p&gt;&lt;/th&gt;
&lt;th class="head"&gt;&lt;p&gt;Description&lt;/p&gt;&lt;/th&gt;
&lt;th class="head" colspan="2"&gt;&lt;p&gt;Blog Post Link&lt;/p&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 0 (27-05-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Community Bounding Period&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-06-02-week-0-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/gsoc-2023-community-bonding-period/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-odd"&gt;&lt;td&gt;&lt;p&gt;Week 1 (03-06-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Working with SpinBox and TextBox Enhancements&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-06-03-week-1-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-1-working-with-spinbox-and-textbox-enhancements/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 2 (10-06-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Tackling Text Justification and Icon Flaw Issues&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-06-11-week-2-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-2-tackling-text-justification-and-icon-flaw-issues/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-odd"&gt;&lt;td&gt;&lt;p&gt;Week 3 (17-06-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Resolving Combobox Icon Flaw and TextBox Justification&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-06-17-week-3-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-3-resolving-combobox-icon-flaw-and-textbox-justification/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 4 (24-06-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Exam Preparations and Reviewing&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-06-24-week-4-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-4-exam-preparations-and-reviewing/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-odd"&gt;&lt;td&gt;&lt;p&gt;Week 5 (01-07-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Trying out PRs and Planning Ahead&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-07-01-week-5-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-5-testing-out-prs-and-planning-ahead/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 6 (08-07-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;BoundingBox for TextBlock2D!&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-07-08-week-6-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-6-boundingbox-for-textblock2d/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-odd"&gt;&lt;td&gt;&lt;p&gt;Week 7 (15-07-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Sowing the seeds for TreeUI&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-07-15-week-7-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-7-sowing-the-seeds-for-treeui/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 8 (22-07-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Another week with TextBlockUI&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-07-22-week-8-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-8-another-week-with-textblockui/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-odd"&gt;&lt;td&gt;&lt;p&gt;Week 9 (29-07-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;TextBlock2D is Finally Merged!&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-07-29-week-9-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-9-textblock2d-is-finally-merged/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 10 (05-08-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Its time for a Spin-Box!&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-08-05-week-10-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-10-its-time-for-a-spin-box/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-odd"&gt;&lt;td&gt;&lt;p&gt;Week 11 (12-08-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;Bye Bye SpinBox&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-08-12-week-11-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-11-bye-bye-spinbox/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="row-even"&gt;&lt;td&gt;&lt;p&gt;Week 12 (19-08-2023)&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;FileDialog Quest Begins!&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;p&gt;&lt;a class="reference external" href="https://fury.gl/latest/posts/2023/2023-08-19-week-12-praneeth.html"&gt;FURY&lt;/a&gt; - &lt;a class="reference external" href="https://blogs.python-gsoc.org/en/ganimtron_10s-blog-copy-2/week-12-filedialog-quest-begins/"&gt;Python&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-08-25-final-report-praneeth.html"/>
    <summary>Name: Praneeth Shetty</summary>
    <category term="google" label="google"/>
    <published>2023-08-25T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-08-19-week-12-praneeth.html</id>
    <title>Week 12: FileDialog Quest Begins!</title>
    <updated>2023-08-19T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-12-filedialog-quest-begins"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;During this week, I initiated my work on the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; PR, which had been started by Soham. The initial version of the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; can be found at &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/294"&gt;#294&lt;/a&gt;. To start, I focused on rebasing the PR. Since this PR was based on an older version, there were some updates to the overall UI structure that needed to be addressed for compatibility. While handling this, I identified a set of issues that I documented in the current PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/832"&gt;#832&lt;/a&gt;. These mainly revolved around:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Resizing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; and related components.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rectifying the text overflow problem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dealing with a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ZeroDivisionError&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixing the positioning of items in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ListBox2D&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I systematically approached each of these challenges:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resizing FileMenu and Related Components:&lt;/strong&gt; This was a fairly complex task since it involved intricate dependencies, such as the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; relying on the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileMenu&lt;/span&gt;&lt;/code&gt;, which, in turn, was dependent on &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ListBox2D&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Panel2D&lt;/span&gt;&lt;/code&gt; resizing. To make the process manageable, I decided to progress incrementally in a separate PR a bit later.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Text Overflow Issue:&lt;/strong&gt; The problem with text overflow was rooted in our previous approach, which involved executing these actions only when the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt; had a scene property. Although this approach suited the previous version of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;, the recent refactoring led to the removal of this property. The scene was previously utilized to determine the text actor’s size. However, we had new methodologies to calculate these sizes, which are detailed in &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/803"&gt;#803&lt;/a&gt;.&lt;/p&gt;
&lt;img alt="Text Overflow Before" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/b001f9d3-a5e8-45ad-8605-85df595b5654" /&gt;
&lt;img alt="Text Overflow After" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/d3c9c3a3-e601-45ab-8975-2b1e98acf1d3" /&gt;
&lt;p&gt;&lt;strong&gt;Addressing ZeroDivisionError:&lt;/strong&gt; The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ZeroDivisionError&lt;/span&gt;&lt;/code&gt; emerged when the total number of values was the same as the number of slots. The issue lay in the separation of these values for calculating the scrollbar’s height parameter. Unfortunately, this calculation error occurred when this would return us zero while updating the scrollbar. To counter this, I implemented a conditional check to ascertain whether the value is zero or not.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correcting ``ListBox2D`` Item Positioning:&lt;/strong&gt; Another challenge I encountered related to the improper positioning of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ListBox2D&lt;/span&gt;&lt;/code&gt; item’s background. When a slot was not visible, its background was resized to zero, and visibility was set to off. Consequently, during the calculation of updated positions, the height was considered zero, leading to mispositioning. I resolved this by refraining from resizing and solely toggling visibility, achieving the desired result.&lt;/p&gt;
&lt;img alt="ListBox2D mispositioning Before" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/e2805934-b037-47fd-872c-0b284b298d3c" /&gt;
&lt;img alt="Fixed ListBox2D mispositioning" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/3bc1aabb-bb79-4e26-817d-a2a2ddd20ea3" /&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;Among the challenges I faced, one notable instance involved addressing the visibility issue in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TreeUI&lt;/span&gt;&lt;/code&gt;. Despite my attempts at various solutions, none yielded the desired outcome. The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TreeUI&lt;/span&gt;&lt;/code&gt; exhibited either full visibility or no visibility at all. In this situation, I sought guidance from my mentor to find a viable solution.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; implementation is nearly finalized, and my plan is to work on any review, feedback or suggestions that might arise. Following this, I will shift my attention towards addressing the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TreeUI&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-08-19-week-12-praneeth.html"/>
    <summary>During this week, I initiated my work on the FileDialog PR, which had been started by Soham. The initial version of the FileDialog can be found at #294. To start, I focused on rebasing the PR. Since this PR was based on an older version, there were some updates to the overall UI structure that needed to be addressed for compatibility. While handling this, I identified a set of issues that I documented in the current PR #832. These mainly revolved around:</summary>
    <category term="google" label="google"/>
    <published>2023-08-19T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-08-12-week-11-praneeth.html</id>
    <title>Week 11: Bye Bye SpinBox</title>
    <updated>2023-08-12T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-11-bye-bye-spinbox"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;Building upon the progress of the previous week, a major milestone was reached with the merging of PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/830"&gt;#830&lt;/a&gt;. This PR added essential “getters” and “setters” for the new features of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock&lt;/span&gt;&lt;/code&gt;, making it easier to handle changes. This, in turn, facilitated the integration of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; with the updated &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;However, while working on &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt;, a critical issue emerged. As &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; allows users to input characters and symbols into an editable textbox, it posed a risk of program crashes due to invalid inputs. To counter this, I introduced a validation check to ensure that the input was a valid number. If valid, the input was converted; otherwise, it reverted to the previous value. After thorough testing and review, PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/499"&gt;#499&lt;/a&gt; was successfully merged.&lt;/p&gt;
&lt;img alt="SpinBoxUI" class="align-center" src="https://user-images.githubusercontent.com/64432063/261409747-511e535b-185c-4e70-aaa8-5296c93e5344.gif" style="width: 500px;" /&gt;
&lt;p&gt;Meanwhile, a concern with the textbox’s behavior was identified when &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; was scaled to a larger size. Specifically, the text occasionally touched the top or bottom boundary, creating an overflow appearance. Although initial solutions were attempted, the complexity of the issue required further consideration. This issue has been documented in more detail in Issue &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/838"&gt;#838&lt;/a&gt;, where it is marked as a low-priority item.&lt;/p&gt;
&lt;figure class="align-center"&gt;
&lt;img alt="TextBlock2D text positioning issue" src="https://user-images.githubusercontent.com/64432063/133194003-53e2dac6-31e0-444e-b7f1-a9e71545f560.jpeg" /&gt;
&lt;/figure&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;The challenge of the week centered around addressing the textbox’s overflow behavior in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;Looking ahead, the focus remains on refining the FileDialog component, as the significant progress with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; prepares us to shift attention to other aspects of development.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-08-12-week-11-praneeth.html"/>
    <summary>Building upon the progress of the previous week, a major milestone was reached with the merging of PR #830. This PR added essential “getters” and “setters” for the new features of TextBlock, making it easier to handle changes. This, in turn, facilitated the integration of SpinBoxUI with the updated TextBlock.</summary>
    <category term="google" label="google"/>
    <published>2023-08-12T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-08-05-week-10-praneeth.html</id>
    <title>Week 10: Its time for a Spin-Box!</title>
    <updated>2023-08-05T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-10-its-time-for-a-spin-box"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;This week, my focus shifted to the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; after wrapping up work on &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;. &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; is a component that allows users to select a value by spinning through a range. To ensure a smooth transition, I made adjustments in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; to align it with the recent updates in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;. To make things even clearer and more user-friendly, I initiated a continuous code improvement process. I introduced setters and getters that enable easier customization of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;’s new features, such as &lt;strong&gt;auto_font_scale&lt;/strong&gt; and &lt;strong&gt;dynamic_bbox&lt;/strong&gt;. These tools simplify the process of adjusting these settings, and you can see the ongoing changes in pull request &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/830"&gt;#830&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Simultaneously, I worked on improving the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; component. Since the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileDialog&lt;/span&gt;&lt;/code&gt; PR was based on an older version, it required updates to match the recent developments in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock2D&lt;/span&gt;&lt;/code&gt;. This involved restructuring the code and making sure that everything worked smoothly together. You can checkout the progress here at PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/832"&gt;#832&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;Thankfully, this week was quite smooth sailing without any major roadblocks.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;Looking ahead, my plan is to finalize the integration of the updated &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;TextBlock&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SpinBoxUI&lt;/span&gt;&lt;/code&gt; components. This entails making sure that everything works seamlessly together and is ready for the next stages of development.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-08-05-week-10-praneeth.html"/>
    <summary>This week, my focus shifted to the SpinBoxUI after wrapping up work on TextBlock2D. SpinBoxUI is a component that allows users to select a value by spinning through a range. To ensure a smooth transition, I made adjustments in SpinBoxUI to align it with the recent updates in TextBlock2D. To make things even clearer and more user-friendly, I initiated a continuous code improvement process. I introduced setters and getters that enable easier customization of TextBlock2D’s new features, such as auto_font_scale and dynamic_bbox. These tools simplify the process of adjusting these settings, and you can see the ongoing changes in pull request #830.</summary>
    <category term="google" label="google"/>
    <published>2023-08-05T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-07-29-week-9-praneeth.html</id>
    <title>Week 9: TextBlock2D is Finally Merged!</title>
    <updated>2023-07-29T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-9-textblock2d-is-finally-merged"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;Continuing from the previous week, it seemed like we were almost done with the &lt;em&gt;TextBlock2D&lt;/em&gt;, but there remained a final task of addressing conflicting issues. Being a core part of the UI, &lt;em&gt;TextBlock2D&lt;/em&gt; had a few compatibility problems with certain other UI elements.&lt;/p&gt;
&lt;p&gt;The default behavior of &lt;em&gt;TextBox2D&lt;/em&gt; now includes a dynamic bounding box, which scales automatically based on the contained text. Users can customize this option through a simple flag setting. However, this change affected some UI elements like &lt;em&gt;Combobox2d&lt;/em&gt;, which relied on the default textbox size. Consequently, I had to make updates to ensure compatibility. Additionally, the default initialization of the &lt;em&gt;TextBlock2D&lt;/em&gt; was completely static, which led to the possibility of the text extending beyond the background and failing certain tests. To tackle this, I made adjustments to the overflow helper function in the &lt;em&gt;test_elements.py&lt;/em&gt; file. After a few tweaks and issue resolutions, the PR was ready for review and was successfully merged after passing the review process.&lt;/p&gt;
&lt;img alt="TextBlock2D with different attributes" class="align-center" src="https://user-images.githubusercontent.com/64432063/258603191-d540105a-0612-450e-8ae3-ca8aa87916e6.gif" /&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;I encountered some peculiar test failures that were indirectly related to the &lt;em&gt;TextBlock2D&lt;/em&gt; which at first glance didn’t came up. Although after some debugging and a thorough line-by-line analysis, I managed to identify and resolve them.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;My next priority will be completing the &lt;em&gt;SpinBoxUI&lt;/em&gt; now that the &lt;em&gt;TextBlock2D&lt;/em&gt; is fixed and successfully integrated.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-07-29-week-9-praneeth.html"/>
    <summary>Continuing from the previous week, it seemed like we were almost done with the TextBlock2D, but there remained a final task of addressing conflicting issues. Being a core part of the UI, TextBlock2D had a few compatibility problems with certain other UI elements.</summary>
    <category term="google" label="google"/>
    <published>2023-07-29T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-07-22-week-8-praneeth.html</id>
    <title>Week 8: Another week with TextBlockUI</title>
    <updated>2023-07-22T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-8-another-week-with-textblockui"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;This week, I delved deeper into the &lt;strong&gt;TextBlock2D&lt;/strong&gt; Bounding Box PR to address the challenges with tests and offsetting issues. In a pair programming session with my mentor, we discovered that the offsetting background problem stemmed from the dynamic nature of the bounding box. The issue arose when the &lt;strong&gt;RingSlider2D&lt;/strong&gt; component began with an initial text size larger than the current text, which changed as the value was adjusted between 0-100%. This resulted in problems with offsetting and shrinking the bounding box. To resolve this, we decided to make the dynamic bounding box an optional feature.&lt;/p&gt;
&lt;p&gt;Now, the &lt;strong&gt;TextBlock2D&lt;/strong&gt; component offers three main features:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Completely static background&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic bounding box scaled according to the text&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Font scaling based on the bounding box&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After tweaking and testing, all the features work seamlessly.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;The pair programming session with my mentor proved to be immensely helpful, as it guided me through the whole week.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;I will dedicate time to further enhancing the &lt;strong&gt;TreeUI&lt;/strong&gt;. My focus will be on updating tree nodes and ensuring proper node positioning during movement.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-07-22-week-8-praneeth.html"/>
    <summary>This week, I delved deeper into the TextBlock2D Bounding Box PR to address the challenges with tests and offsetting issues. In a pair programming session with my mentor, we discovered that the offsetting background problem stemmed from the dynamic nature of the bounding box. The issue arose when the RingSlider2D component began with an initial text size larger than the current text, which changed as the value was adjusted between 0-100%. This resulted in problems with offsetting and shrinking the bounding box. To resolve this, we decided to make the dynamic bounding box an optional feature.</summary>
    <category term="google" label="google"/>
    <published>2023-07-22T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-07-15-week-7-praneeth.html</id>
    <title>Week 7: Sowing the seeds for TreeUI</title>
    <updated>2023-07-15T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-7-sowing-the-seeds-for-treeui"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;This week, I focused on completing the &lt;strong&gt;TextBlock2D&lt;/strong&gt; Bounding Box feature. However, the tests were failing due to automatic background resizing based on content and improper text actor alignment during setup. I encountered difficulties while positioning the text, which caused the text to appear offset and led to test failures.&lt;/p&gt;
&lt;p&gt;Text background greater than the actual maximum size:&lt;/p&gt;
&lt;img alt="Text background greater than the actual maximum size in ComboBox2D" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/aaf4a764-4480-4f96-9adf-29d9e28135a6" /&gt;
&lt;p&gt;Text offset from center:&lt;/p&gt;
&lt;img alt="Text offset from center in RingSlider2D" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/0a3bc1e6-a566-4c08-9ca4-a191525b9c97" /&gt;
&lt;p&gt;Additionally, I reviewed PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/814"&gt;#814&lt;/a&gt; and noticed that after PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/769"&gt;#769&lt;/a&gt;, all demos and examples were merged into a single folder, which affected the paths used in the Scientific Domain Section. To address this, I created PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/820"&gt;#820&lt;/a&gt; to redirect the links to the correct path.&lt;/p&gt;
&lt;p&gt;As I faced issues with the &lt;strong&gt;TextBlock2D&lt;/strong&gt; PR, I took the opportunity to rebase and continue working on the &lt;strong&gt;TreeUI&lt;/strong&gt; PR since there were no updates from the author.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;While fixing the issues with the tests for the &lt;strong&gt;TextBlock2D&lt;/strong&gt; bounding box, I encountered a weird behavior in text positioning when using the center alignment. The output varied depending on the sequence of repositioning which we are still investigating.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;I will continue working on the &lt;strong&gt;TreeUI&lt;/strong&gt; and resolve the &lt;strong&gt;TextBlock2D&lt;/strong&gt; error to ensure both PRs progress smoothly.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-07-15-week-7-praneeth.html"/>
    <summary>This week, I focused on completing the TextBlock2D Bounding Box feature. However, the tests were failing due to automatic background resizing based on content and improper text actor alignment during setup. I encountered difficulties while positioning the text, which caused the text to appear offset and led to test failures.</summary>
    <category term="google" label="google"/>
    <published>2023-07-15T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-07-08-week-6-praneeth.html</id>
    <title>Week 6: BoundingBox for TextBlock2D!</title>
    <updated>2023-07-08T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-6-boundingbox-for-textblock2d"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;This week, I worked on improving the &lt;strong&gt;TextBlock2D&lt;/strong&gt; component in the UI system. I started from scratch to address alignment and scaling issues. When resizing the &lt;strong&gt;TextBlock2D&lt;/strong&gt;, the text alignment and justification with the background rectangle were inconsistent. To resolve this, I introduced a new “boundingbox” property that calculates the text bounding box based on its content. Additionally, I separated the scaling mode from the resizing action with the new “auto_font_scale” property, enabling automatic font scaling according to the bounding box. This will provide better alignment, justified text, and smoother font scaling for the &lt;strong&gt;TextBlock2D&lt;/strong&gt; component. Try it out at &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/803"&gt;PR #803&lt;/a&gt;.&lt;/p&gt;
&lt;img alt="TextBlock2D will different justifications" class="align-center" src="https://github.com/fury-gl/fury/assets/64432063/94212105-7259-48da-8fdc-41ee987bda84" /&gt;
&lt;p&gt;As discussed last week, we also made a decision regarding the scrollbar. After exploring different use cases, we concluded that creating an independent scrollbar is not necessary at the moment. Therefore, we will close the related pull requests. You can find out more about it in the discussion &lt;a class="reference external" href="https://github.com/fury-gl/fury/discussions/816"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;Implementing the bounding box feature took some extra time as I needed to carefully consider its impact on other UI elements that rely on the &lt;strong&gt;TextBlock2D&lt;/strong&gt; component.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;Next, I will focus on completing the TextBlock2D Bounding Box PR, which will also indirectly finalize the Spinbox PR.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-07-08-week-6-praneeth.html"/>
    <summary>This week, I worked on improving the TextBlock2D component in the UI system. I started from scratch to address alignment and scaling issues. When resizing the TextBlock2D, the text alignment and justification with the background rectangle were inconsistent. To resolve this, I introduced a new “boundingbox” property that calculates the text bounding box based on its content. Additionally, I separated the scaling mode from the resizing action with the new “auto_font_scale” property, enabling automatic font scaling according to the bounding box. This will provide better alignment, justified text, and smoother font scaling for the TextBlock2D component. Try it out at PR #803.</summary>
    <category term="google" label="google"/>
    <published>2023-07-08T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-07-01-week-5-praneeth.html</id>
    <title>Week 5: Trying out PRs and Planning Ahead</title>
    <updated>2023-07-01T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-5-trying-out-prs-and-planning-ahead"&gt;

&lt;section id="what-did-you-do-this-week"&gt;
&lt;h2&gt;What did you do this week?&lt;/h2&gt;
&lt;p&gt;Due to ongoing exams, my productivity was limited this week. However, I managed to find some time to explore and review a few PRs submitted by contributors:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Ellipsoid PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/791"&gt;#791&lt;/a&gt;:
This PR focuses on creating a new ellipsoid actor defined with SDF and raymarching techniques.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Website Improvement PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/812"&gt;#812&lt;/a&gt;:
This PR includes changes for the new compatibility section on the FURY home page.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Towards the end of the week, I had a meeting with my mentor. We discussed the current status of ongoing PRs and identified action points to focus on in the upcoming weeks. This discussion provided clarity on the challenges faced with certain PRs and issues.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="did-you-get-stuck-anywhere"&gt;
&lt;h2&gt;Did you get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;Fortunately, I didn’t encounter any major roadblocks or challenges that hindered my progress this week.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;p&gt;With the action points provided by my mentor, I will be dedicating the next week to completing those tasks.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-07-01-week-5-praneeth.html"/>
    <summary>Due to ongoing exams, my productivity was limited this week. However, I managed to find some time to explore and review a few PRs submitted by contributors:</summary>
    <category term="google" label="google"/>
    <published>2023-07-01T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://fury.gl/posts/2023/2023-06-24-week-4-praneeth.html</id>
    <title>Week 4: Exam Preparations and Reviewing</title>
    <updated>2023-06-24T00:00:00+00:00</updated>
    <author>
      <name>Praneeth Shetty</name>
    </author>
    <content type="html">&lt;section id="week-4-exam-preparations-and-reviewing"&gt;

&lt;section id="what-did-i-do-this-week"&gt;
&lt;h2&gt;What did I do this week?&lt;/h2&gt;
&lt;p&gt;This week, amidst end-semester exams, I managed to accomplish a few notable tasks. Let’s dive into the highlights:&lt;/p&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p&gt;Merging &lt;strong&gt;CardUI&lt;/strong&gt;: The PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/398"&gt;#398&lt;/a&gt; introduced the &lt;strong&gt;CardUI&lt;/strong&gt; to the UI system of FURY. After a successful review and test check, it was merged into the codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/home/runner/work/fury/fury/docs/source/posts/2023/2023-06-24-week-4-praneeth.rst&lt;/span&gt;, line 2); &lt;em&gt;&lt;a href="#id3"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate explicit target name: “#540”.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Revisiting PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/540"&gt;#540&lt;/a&gt;: I restarted working on PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/540"&gt;#540&lt;/a&gt; as I wasn’t satisfied with the previous approach when I checked it for rebasing. I took the opportunity to update the code and ensure that the unit tests passed successfully. Although there are a few issues remaining in the tests, I am determined to resolve them and move forward with the implementation. This PR aims to improve the usage of the &lt;strong&gt;numpy_to_vtk_image_data&lt;/strong&gt; utility function.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Independent Scrollbar Consideration: We are currently evaluating the necessity of making the Scrollbar an independent element. Currently it is only used by the &lt;strong&gt;ListBox2D&lt;/strong&gt;, we are exploring various use cases to determine if there are other scenarios where the Scrollbar can be employed independently. This evaluation will help us make an informed decision about its future implementation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PR Reviews: In the brief intervals between exams, I utilized the time to review two PRs: &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/446"&gt;#446&lt;/a&gt; - Resize panel and &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/460"&gt;#460&lt;/a&gt; - Tree UI.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
&lt;section id="did-i-get-stuck-anywhere"&gt;
&lt;h2&gt;Did I get stuck anywhere?&lt;/h2&gt;
&lt;p&gt;No, fortunately, I didn’t encounter any major obstacles or challenges during my tasks this week.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-coming-up-next"&gt;
&lt;h2&gt;What is coming up next?&lt;/h2&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/home/runner/work/fury/fury/docs/source/posts/2023/2023-06-24-week-4-praneeth.rst&lt;/span&gt;, line 2); &lt;em&gt;&lt;a href="#id6"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate explicit target name: “#540”.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Once the exams are over, I am eagerly looking forward to making a full comeback to development. My immediate plans include addressing the remaining issues in PR &lt;a class="reference external" href="https://github.com/fury-gl/fury/pull/540"&gt;#540&lt;/a&gt; and completing the pending tasks. I will also catch up on any missed discussions and sync up with the team to align our goals for the upcoming weeks.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://fury.gl/posts/2023/2023-06-24-week-4-praneeth.html"/>
    <summary>This week, amidst end-semester exams, I managed to accomplish a few notable tasks. Let’s dive into the highlights:</summary>
    <category term="google" label="google"/>
    <published>2023-06-24T00:00:00+00:00</published>
  </entry>
</feed>
