Posts by Mohamed Abouagour

Google Summer of Code Final Work Product

Name: Mohamed Abouagour

Read more ...


Week 14: Keyframes animation is now a bit easier in FURY

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.

Read more ...


Week 13: Keyframes animation is now a bit easier in FURY

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.

Read more ...


Week 12: Adding new tutorials

Restructured tutorials to be more readable and more focused on a specific topic.

Read more ...


Week 11: Improving tutorials a little

Fixed some issues in the hierarchical order animation support PR that we discussed during last week’s meeting (mostly naming issues).

Read more ...


Week 10: Supporting hierarchical animating

Implemented hierarchical order support for animations using matrices in this PR.

Read more ...


Week 9: Animating primitives of the same actor

Made two tutorials in this PR that show two approaches on how to animate primitives of the same FURY actor using the Timeline.

Read more ...


Week 8: Back to the shader-based version of the Timeline

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.

Read more ...


Week 7: Billboard spheres and implementing interpolators using closures

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.

Read more ...


Week 6: Fixing the Timeline issues and equipping it with more features

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.

Read more ...


Week 5: Slerp implementation, documenting the Timeline, and adding unit tests

Implemented Slerp (spherical linear interpolation) for rotation keyframes.

Read more ...


Week 4: Camera animation, interpolation in GLSL, and a single Timeline!

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.

Read more ...


Week 3: Redesigning the API, Implementing cubic Bezier Interpolator, and making progress on the GPU side!

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.

Read more ...


Week 2: Implementing non-linear and color interpolators

Implemented some other general interpolators such as n-th degree spline and cubic spline interpolators. Also implemented HSV and LAB color interpolators.

Read more ...


Week 1: Implementing a basic Keyframe animation API

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.

Read more ...


My journey till getting accepted into GSoC22

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.

Read more ...