Posts tagged google
Week 0: Community Bounding Period
- 02 June 2023
Hello everyone, my name is Tania Castillo, I am close to finishing my degree in Computer Science and I think this is a great opportunity to put my learning and skills into practice. I will be working with FURY on improving the visualization of DTI tensors and HARDI ODFs glyphs by using well-known techniques in computer graphics.
Contribute to FURY via Google Summer of Code 2023
- 01 February 2023
FURY is participating in the Google Summer of Code 2023 under the umbrella of the Python Software Foundation.
Week 14: Keyframes animation is now a bit easier in FURY
- 28 September 2022
Separated the Timeline
into a Timeline
and an Animation
. So, instead of having the Timeline
do everything. It’s now more like doing animations in Blender and other 3D editing software where the timeline handles the playback of several animations #694.
Week 14 - Morphing is here!
- 28 September 2022
This week, I started with multiple actor support in skinning and managed to do it successfully. Here’s the preview using the BrainStem model.
Week 16 - Working with Rotations!
- 21 September 2022
Last week my mentors noticed that each DrawShape has its individual rotation_slider which increases redundancy and complexity in setting its visibility on and off. Instead, they suggested moving the rotation_slider to DrawPanel and keeping a common slider for all the shapes.
Week 13: Keyframes animation is now a bit easier in FURY
- 20 September 2022
Added the ability to have the ShowManager stored inside the Timeline. That way the user does not have to update and render the animations because it will be done internally.
Week 13 - Multi-bone skeletal animation support
- 15 September 2022
This week I fixed all the issues with skeletal animations, and we got to see our first render of skeletal animation :).
Week 15 - Highlighting DrawShapes
- 14 September 2022
This week I started with highlighting the shapes. As discussed earlier, I had two ways, but while implementing them, I found out both ways aren’t that good to continue with. The first way in which we thought of creating the scaled shapes in the background had an issue with the stacking. The border(blue rectangle) and the shape(grey rectangle) both seem to look like different shapes just grouped together as shown below.
Week 12 - Adding skeleton as actors and fix global transformation
- 08 September 2022
I started this week by fixing the segmentation fault for the skinning test. I could not fix this as of now.
Week 14 - Updating DrawPanel architecture
- 07 September 2022
This week I continued updating the DrawShape and DrawPanel.
Week 12: Adding new tutorials
- 07 September 2022
Restructured tutorials to be more readable and more focused on a specific topic.
Week 13 - Separating tests and fixing bugs
- 31 August 2022
This week I managed to fix the translation issue in PR #653. This was happening because of the calculation error while repositioning the shapes. Now it works as intended.
Week 11 - Multiple transformations support and adding tests
- 31 August 2022
As decided last week, I added support for multiple animations at the same timestamp. But this didn’t solve the animation problems of RiggedSimple
model.
Week 11: Improving tutorials a little
- 30 August 2022
Fixed some issues in the hierarchical order animation support PR that we discussed during last week’s meeting (mostly naming issues).
Week 10 - Multi-node skinning support
- 25 August 2022
As we figured out that the SimpleSkin
model is not animated as intended. This week I started working with that model;
I figured out that we need to apply the InverseBindMatrix to each timer callback. I had a hard time figuring out what inverse bind matrix actually does.
Here’s a good blog that answers that.
Week 12 - Fixing translating issues and updating tests
- 24 August 2022
I started with updating the tests for PR #623 as some of the tests weren’t covering all the aspects in the code.
Previously I was just creating the DrawShape
and adding it to the scene but now I had to analyze the scene to see whether they were properly added or not.
Week 10: Supporting hierarchical animating
- 23 August 2022
Implemented hierarchical order support for animations using matrices in this PR.
Week 9 - First working skeletal animation prototype
- 17 August 2022
This week I had the first working example of skeletal animation ready. I was able to render the SimpleSkin model. Here’s a quick preview:
Week 11 - Creating a base for Freehand Drawing
- 17 August 2022
This week I tried to imitate the working of vtkImageTracer. Previously, I had created a small prototype for freehand drawing by adding points at the mouse position (which you can check out here). As mentioned, there were some drawback of this method. So to overcome these issues, I tried combining both methods. Considering points using the previous method and instead of adding points I tried creating lines between them which looks promising. Below you can see a demo.
Week 9: Animating primitives of the same actor
- 16 August 2022
Made two tutorials in this PR that show two approaches on how to animate primitives of the same FURY actor using the Timeline
.
Week 8 - Fixing animation bugs
- 10 August 2022
This week I had to fix the transformation issue in glTF animation. As discussed in the last meeting, I disabled vertex transformation and applied the transformation after the actor was formed.
Week 10 - Understanding Codes and Playing with Animation
- 10 August 2022
I started working on the PR #645 created last week and tested a few more corner cases such as What happens if the maximum value is exceeded?? What if we give a value less than the minimum value range?? Most of these worked as intended.
Week 8: Back to the shader-based version of the Timeline
- 09 August 2022
First, I made some modifications to the main animation PR. Then as Filipi requested, I integrated the vertex shader that I was implementing a few weeks ago to work with the new improved version of the Timeline
.
Week 9 - Grouping and Transforming Shapes
- 03 August 2022
I started this week by creating a quick PR #645 for the UI sliders. The sliders raised ZeroDivsionError
when the min and max values were the same. To solve this, I handled the case where the value_range becomes zero and then manually set the handle position to zero.
Week 7: Billboard spheres and implementing interpolators using closures
- 01 August 2022
Restructured the keyframe animation interpolators using closures to be functions instead of classes #647. Now it is easier to implement new interpolators with the help of the functions existing in fury/animation/helpers.py. Also, now unit tests can be added for the latter functions.
Week 7 - Fixing bugs in animations
- 01 August 2022
This week I started with implementing scaling to the animation example.
Week 8 - Working on the polyline feature
- 27 July 2022
This week I started working on the polyline feature. After a lot of investigating and trying out different things, I found a way to call the dragging event manually without any prior click event. VTK actually captures the mouse movement using the MouseMoveEvent
. This event is then modified by FURY to only be called after the click event. So I added a new callback to track the mouse movement and set the current canvas as an active prop because it is required to capture the drag event happening on it.
Week 6: Fixing the Timeline issues and equipping it with more features
- 25 July 2022
Improved the PlaybackPanel
by adding speed control and the ability to loop the animation. Also, fixed the lagging issue of play and pause buttons and composed them into a single play/pause button.
Week 6 - Extracting the animation data
- 25 July 2022
This week, it was all about reading docs and extracting the animation data from buffers.
Week 7 - Working on Rotation PR and Trying Freehand Drawing
- 20 July 2022
I continued PR #623 and fixed the displacement of the shape from its original position when applying rotation. This was happening because most of the calculations resulted in float values, but as the pixel position were integers we had to explicitly convert these values into int. This conversion rounded off the values and as we call this function continuously, each time the round-off would happen, the shape would get displaced.
Week 5: Slerp implementation, documenting the Timeline, and adding unit tests
- 19 July 2022
Implemented Slerp (spherical linear interpolation) for rotation keyframes.
Week 5 - Creating PR for glTF exporter and fixing the loader
- 19 July 2022
Finalised the glTF export PR #630., adding tutorial, docs, and tests for all functions.
Week 6 - Supporting Rotation of the Shapes from the Center
- 13 July 2022
This week I started implementing a new feature to rotate the shapes from the center using RingSlider2D
. I already had a rotate function that rotates the shape around its pivot vertex, so I updated it to support rotation from the center.
Week 4 - Finalizing glTF loader
- 12 July 2022
This week I had to travel back to my college since the summer vacations have ended. I had a coding session with Serge this week, we modified the exporter function and looked at some bugs I faced.
Week 4: Camera animation, interpolation in GLSL, and a single Timeline!
- 11 July 2022
Managed to implement a single Timeline
using the Container
class. So, instead of having two classes: Timeline
and CompositeTimeline
, now the Timeline
can have multiple Timeline
objects and controls them as in the code below.
Week 5 - Working on new features
- 06 July 2022
This week I tried to create a base for some upcoming new features. The first thing I updated was the Properties panel which I prototyped in Week 3. So previously, it was just displaying the properties but now after the update, it is able to modify the properties(such as color, position, and rotation) too. This was a quick change to test the callbacks.
Week 3: Redesigning the API, Implementing cubic Bezier Interpolator, and making progress on the GPU side!
- 04 July 2022
Redesigned the keyframe animations API to optimize having a lot of timelines by composing them into a parent Timeline
called CompositeTimeline
while maintaining playing individual timelines separately.
Week 3 - Fixing fetcher, adding tests and docs
- 04 July 2022
The first task for this week was to fix the glTF fetcher. We noticed that while running tests it reaches the API limit. So we decided to use a JSON file that contains the download URLs for all models.
Week 4 - Fixing the Clamping Issue
- 29 June 2022
Phew!! This week was a tedious week for me as parallelly my End-Sem exams also started. So as usual I started from where I left off last week, The Clamping Issue. As per the discussion with the mentors, we decided to use the AABB bounding box method to calculate the bounding box around the shape and then reposition or transform respectively, as now we had a fixed reference point. So after doing some calculations with the mouse positions and the bounding box points at last, I was able to clamp all the shapes successfully.
Week 2 - Improving Fetcher and Exporting glTF
- 29 June 2022
This week I worked primarily on the glTF fetcher and exporting scenes to a glTF file. I added tests and docstrings for all functions. I modified the fetch_gltf
function to return the downloaded files. As we planned, the PR for the glTF fetcher was merged this week.
Week 2: Implementing non-linear and color interpolators
- 28 June 2022
Implemented some other general interpolators such as n-th degree spline and cubic spline interpolators. Also implemented HSV and LAB color interpolators.
Week 3 - Dealing with Problems
- 22 June 2022
This week was full of researching, playing around with things, prototyping ideas, etc. I started with last week’s clamping issue and managed to solve this issue while drawing shapes by clipping the mouse position according to canvas size, but it didn’t solve the problem with translating these shapes. I tried solving this using various approaches, but if one thing would get fixed, other things would raise a new error.
Week 1 - A Basic glTF Importer
- 20 June 2022
In the community bonding period I met with my mentor Serge Koudoro, along with other mentors in FURY and gsoc contributors. We discussed about my project and set up project timeline on github projects section. As my project (glTF Integration) and Keyframe animations were related so we discussed on that too.
Week 1: Implementing a basic Keyframe animation API
- 19 June 2022
During the community bonding period, we had weekly meetings in which I got to know the mentors better and bonded with Shivam and Praneeth, my fellow contributors. We talked about the importance of open-source contribution and discussed scientific visualization, how important it is and how it differs from game engines despite having some similarities. We also discussed how important the code review is and how to do a proper code review.
Week 2 - Improving DrawPanel UI
- 15 June 2022
This week I had to refactor and make my code cleaner along with some bug fixing, I started by adding tests and tutorials so that my changes could be tested by everyone. Then I separated the mode for selection so that it would be easy to select an individual element and work along with it. Once the selection mode was complete I started with the deletion of the elements.
Week 1 - Laying the Foundation of DrawPanel UI
- 08 June 2022
This week we started with our first technical meeting in which the weekly tasks were assigned. So I had to start with some background or canvas and draw a line using mouse clicks.
Pre-GSoC Journey
- 25 May 2022
Hello Guys!! I am Praneeth Shetty, currently pursuing Bachelor of Engineering in Computer Engineering, and here is my journey from where I started to the selection into GSoC22.
My Journey to GSoC 2022
- 24 May 2022
Hi! I’m Shivam, currently pursuing my bachelor’s (expected 2024) in Production and Industrial engineering from the Indian Institute of Technology (IIT) Roorkee.
My journey till getting accepted into GSoC22
- 23 May 2022
My name is Mohamed and I’m from Egypt. I am pursuing a Bachelor of Engineering in Computer Engineering and Automatic Control (expected: 2023), Tanta University, Egypt.
Contribute to FURY via Google Summer of Code 2022
- 01 February 2022
FURY is participating in the Google Summer of Code 2022 under the umbrella of the Python Software Foundation.
Google Summer of Code 2021 - Final Report - Bruno Messias
- 23 August 2021
We have changed some points of my project in the first meeting. Specifically, we focused the efforts into developing a streaming system using the WebRTC protocol that could be used in more generic scenarios than just the network visualization. In addition to that, we have opted to develop the network visualization for fury as a separated repository and package available here. The name Helios was selected for this new network visualization system based on the Fury rendering pipeline.
Tenth coding week!
- 16 August 2021
Welcome to the eleventh weekly check-in. I’ll be sharing my progress for the tenth week of coding.
Week#10: Accordion UI, Support for sprite sheet animations
- 09 August 2021
Below are the tasks that I worked on:
Ninth coding week!
- 09 August 2021
Welcome to the tenth weekly check-in. I’ll be sharing my progress for the ninth week of coding.
Week #09: Sphinx custom summary
- 02 August 2021
PR fury-gl/helios#22 : Helios Documentation Improvements. I’ve spent some time studying sphinx in order to discover how I could create a custom summary inside of a template module.
Eighth coding week!
- 02 August 2021
Welcome to the ninth weekly check-in. I’ll be sharing my progress for the eighth week of coding.
Weekly Check-In #8
- 26 July 2021
PR fury-gl/helios#18 (merged): Helios Documentation/
I’ve been working on Helios documentation. Now it’s available
online at https://fury-gl.github.io/helios-website
Week #8: Code Cleanup, Finishing up open PRs, Continuing work on Tree2D
- 26 July 2021
This week I had to work on the open PRs specifically work on the bugs that were pointed out in last week’s meeting. Along side the bugs I had to continue the work on Tree2D UI element. Below is the detailed description of what I worked on this week:
Seventh week of coding!
- 26 July 2021
Welcome to the eighth weekly check-in. I’ll be sharing my progress for the seventh week of coding.
Weekly Check-In #7
- 19 July 2021
PR fury-gl/helios#16 (merged): Helios IPC network layout support for MacOs
Week #7: Finalizing the stalling PRs, finishing up Tree2D UI.
- 19 July 2021
This week I had limited tasks to do, mostly tasks related to existing PRs. Other than some minor fixes I had to implement some more things in Tree2D which included some minor UI fixes, some changes in tutorial, adding tests. Below is the detailed description of what I worked on this week:
Sixth week of coding!
- 19 July 2021
Welcome to the seventh weekly check-in. I’ll be sharing my progress for the sixth week of coding.
Week #6: Bug fixes, Working on Tree2D UI
- 12 July 2021
This week I had relatively few tasks and most of them were to fix some bugs/design flaws that were discussed in last week’s meeting. Other than that, I had to implement a few things in the Tree2D UI element that will be discussed in detail below. I also had to update some existing PRs in order to make things work well. Below are the list of things I worked on this week:
Network layout algorithms using IPC
- 12 July 2021
Hi all. In the past weeks, I’ve been focusing on developing Helios; the network visualization library for FURY. I improved the visual aspects of the network rendering as well as implemented the most relevant network layout methods.
Fifth week of coding!
- 12 July 2021
Welcome to the sixth weekly check-in. I’ll be sharing my progress for the fifth week of coding.
Weekly Check-In #5
- 05 July 2021
Before the 8c670c2 commit, for some versions of MacOs the streaming system was falling in a silent bug. I’ve spent a lot of time researching to found a cause for this. Fortunately, I could found the cause and the solution. This troublesome MacOs was falling in a silent bug because the SharedMemory Object was creating a memory resource with at least 4086 bytes independent if I’ve requested less than that. If we look into the MultiDimensionalBuffer Object (stream/tools.py) before the 8c670c2 commit we can see that Object has max_size parameter which needs to be updated if the SharedMemory was created with a “wrong” size.
Week #5: Rebasing all PRs w.r.t the UI restructuring, Tree2D, Bug Fixes
- 05 July 2021
The UI restructuring was finally merged this week. This means UI is now a submodule in itself and provides different UI elements based on their types which are, core, elements, containers and some helper methods/classes. So, this week my main tasks were to rebase and fix merge conflicts of my open PR’s. Other than that, I had to continue my work on Tree2D UI element and finish the remaining aspects of it. Also, I had to create an example demonstrating how to use the newly added UI element. Many use cases were discussed in the open meeting like, an image gallery which displays preview image on the title and when expanded reveals the full scale image. I am thinking of adding multiple examples for the Tree2D to brainstorm on its certain features. Also, I had this annoying bug in Panel2D which didn’t allow it to be resized from the bottom right corner. It was resizing from the top right corner. I had to address this bug as well. Below are the tasks in detail:
SOLID, monkey patching a python issue and network visualization through WebRTC
- 05 July 2021
These past two weeks I’ve spent most of my time in the Streaming System PR and the Network Layout PR . In this post I’ll focus on the most relevant things I’ve made for those PRs.
Fourth week of coding!
- 05 July 2021
Welcome to the fifth weekly check-in. I’ll be sharing my progress for the fourth week of coding.
Week #4: Adding Tree UI to the UI module
- 28 June 2021
This week I had very few tasks to do, almost all of them revolved around UI elements and adding stuff to the UI module. Earlier, it was pointed out that due to some design issues, importing certain modules into others caused circular imports which led to importing the specific modules inside a class/method which is not the best approach. This will be resolved as soon as the PR that fixes this issue is reviewed/merged in the codebase. In the meantime, all the PR’s related to UI will be on hold, which is why this I had few tasks this week. The tasks are described below in detail:
Third week of coding!
- 28 June 2021
Welcome to the fourth weekly check-in. I’ll be sharing my progress for the third week of coding.
Weekly Check-In #3
- 21 June 2021
PR fury-gl/fury#422 (merged): Integrated the 3d impostor spheres with the marker actor.
Week #3: Adapting GridLayout to work with UI
- 21 June 2021
This week my tasks revolved around layout and UI elements. The primary goal for this week was to adapt the GridLayout to work with different UI elements. Currently, GridLayout just supports vtk actors and not UI elements, my task was to modify the class to support UI elements. The other tasks for this week are described below in detail:
Second week of coding!
- 21 June 2021
Welcome to the third weekly check-in. I’ll be sharing my progress for the second week of coding.
First week of coding!
- 14 June 2021
Welcome to the second weekly check-in. I’ll be sharing my progress for the first week of coding.
Week #2: Feature additions in UI and IO modules
- 13 June 2021
This week I had to work on 3 PRs as well as some documentation. I really enjoyed this week’s work as the tasks were really interesting. The aim for these PRs were to actually add a couple of features in the UI as well as the IO module, which includes, adding support for border in Panel2D, adding support for network/URL images in load_image method in IO module, adding resizing Panel2D from bottom right corner, completing the document with layout solutions provided by Unity/Unreal engine. Below are the PRs that I worked on:
A Stadia-like system for data visualization
- 13 June 2021
Hi all! In this post I’ll talk about the PR #437.
Welcome to my GSoC Blog!
- 08 June 2021
Hi all! I’m Sajag Swami, a sophomore at Indian Institute of Technology, Roorkee. This summer, I will be working on adding a new functionality to FURY which shall enable users to visualise various types of proteins via different representations like Richardson aka Ribbon diagrams and molecular surface diagrams. As a part of my stretch goals, I’ll try to expand protein diagrams via other representations including:
Weekly Check-In #1
- 08 June 2021
Hi everyone! My name is Bruno Messias currently I’m a Ph.D student at USP/Brazil. In this summer I’ll develop new tools and features for FURY-GL. Specifically, I’ll focus into developing a system for collaborative visualization of large network layouts using FURY and VTK.
Week #1: Welcome to my weekly Blogs!
- 08 June 2021
Hi everyone! I am Antriksh Misri. I am a Pre-Final year student at MIT Pune. This summer, I will be working on Layout Management under FURY’s UI module as my primary goal. This includes addition of different classes under Layout Management to provide different layouts/arrangements in which the UI elements can be arranged. As my stretch goals, I will be working on a couple of UI components for FURY’s UI module. These 2D and 3D components will be sci-fi like as seen in the movie “Guardians of The Galaxy”. My objective for the stretch goals would be to develop these UI components with their respective test and tutorials such that it adds on to the UI module of FURY and doesn’t hinder existing functionalities/performance.
Google Summer of Code
- 09 March 2021
FURY is participating in the Google Summer of Code 2021 under the umbrella of the Python Software Foundation.
Part of the Journey is the end unless its Open Source!
- 23 August 2020
Hello and welcome to my final weekly check-in. Today officially marks the end of the coding period for GSoC 2020. I enjoyed every bit of it. This was a life-changing experience for me and now I observe and interpret everything from a different perspective altogether. I have grown into a better developer and a person since GSoC. I would like to thank all my mentors and especially Serge for his immense support and mentorship. I would love to contribute to fury even after GSoC is over but unfortunately my semester break is over so I won’t be as active as I was during the summer.
Wrecking Ball Simulation, Scrollbars Update, Physics Tutorials.
- 16 August 2020
Hello and welcome to my 12th weekly check-in. In this blog I will be discussing my progress with the wrecking ball simulation and my scrollbar separation work. Apart from this I have also finalized the physics simulation tutorials and have created a Pull Request to finally get it merged with the official repository. The official repository of my sub-org can be found here.
Chain Simulation, Scrollbar Refactor, Tutorial Update.
- 09 August 2020
Hello and welcome to my 11th weekly check-in. In this blog I will be discussing my progress with multiple topics related to physics and ui components. I was actively working on a couple of things, specifically Joint simulations in pyBullet and scrollbar UI component. I also took up the responsibility to complete an incomplete Pull Request which was pending for quite a while. The official repository of my sub-org can be found here.
Single Actor, Physics, Scrollbars.
- 02 August 2020
Hello and welcome to my 10th weekly check-in. Second evaluation ended this week and now we move on to our 3rd and final coding period. In today’s check-in I will be sharing my progress with the single actor physics simulation that I facing some issues with and I will also be discussing my future plans regarding UI components. The official repository of my sub-org, FURY can always be found here.
Tab UI, TabPanel2D, Tab UI Tutorial.
- 26 July 2020
Hello and welcome to my 9th weekly check-in. I will be sharing my progress with TabUI
and its corresponding tutorial. The official repository of my sub-org, FURY can always be found here.
ComboBox2D, TextBlock2D, Clipping Overflow.
- 19 July 2020
Hello and welcome to my 8th weekly check-in. I will be sharing my progress with ComboBox2D
and TextBlock2D
UI components. After solving TextBlock2D
sizing issue, I was finally able to complete the implementation of combo box. I also faced some problems while refactoring TextBlock2D
. The official repository of my sub-org, FURY can always be found here.
Orientation, Sizing, Tab UI.
- 12 July 2020
Hello and welcome to my 7th weekly check-in. I will be sharing my progress with single actor physics simulation and TextBlock2D
sizing issue which was pending for quite a while now. I will also be sharing my thoughts regarding the TAB UI
component. The official repository of my sub-org, FURY can always be found here.
Translation, Reposition, Rotation.
- 05 July 2020
Hello and welcome to my 6th weekly check-in. The first evaluation period officially ends and I am very excited to move on to the second coding period. I will be sharing my progress with handling specific object’s properties among various multiple objects rendered by a single actor. I am mainly focusing on making it easier to translate, rotate and reposition a particular object, so that I can use them to render physics simulations more efficiently. The official repository of my sub-org, FURY can always be found here.
May the Force be with you!!
- 28 June 2020
Hello and welcome to my 5th weekly check-in, I will be sharing my progress of pyBullet Physics Engine Integration with FURY. The official repository of my sub-org, FURY can always be found here.
TextBlock2D Progress!!
- 21 June 2020
Hello and welcome to my 4th weekly check-in, I will be sharing my progress with TextBlock2D UI component. The official repository of my sub-org, FURY can always be found here.
ComboBox2D Progress!!
- 14 June 2020
Hello and welcome to my third weekly check-in, I will be sharing my progress with the project so far. In case you wondered, the sub-org that I am affiliated to is FURY. Make sure to check out the official repository here.
First week of coding!!
- 07 June 2020
Hello and welcome to my second weekly check-in, I will be sharing my progress for the first week of coding.
Welcome to my GSoC Blog!!!
- 30 May 2020
Hello Everyone, this is Soham Biswas currently in 2nd year pursuing my Bachelor’s(B.Tech) degree in Computer Science & Engineering from Institute of Engineering & Management, Kolkata. I have been selected for GSoC’ 20 at sub-org FURY under the umbrella organization of Python Software Foundation. I will be working on building sci-fi-like 2D and 3D interfaces and provide physics engine integration under project titled “Create new UI widgets & Physics Engine Integration”.
Weekly Check-in #1
- 30 May 2020
Hey everyone! This is my blog for this summer’s GSoC @ PSF I am Lenix Lobo, an undergraduate student from India, and this summer I will be working with project Fury under the umbrella of the Python Software foundation. I will be working on improving the current shader framework.
Google Summer of Code
- 05 January 2020
FURY is participating in the Google Summer of Code 2020 under the umbrella of the Python Software Foundation.