Researcher Corner

Isometric Illustrations in Figma

Figma is a powerful tool for interface development and prototyping. We use it to design our products and to create graphic layouts for marketing and other purposes. One of the most significant advantages of Figma is that it allows you to write custom plugins enabling third-party developers to expand the already extensive range of the platform's capabilities. Let’s discuss one of such plugins.

For new brochures, our product designer came up with an interesting concept: to display illustrations in isometric projection. There is already a working plugin Easometric. However, it has a disadvantage: Easometric can only create 30-degree projections, and this angle cannot be changed in any way, since the value of 30° is embedded in the plugin’s source code. And we needed an angle of 22°: the Wallarm logo is rotated at such an angle in isometric projection. The author of the plugin published it freely on GitHub, so we decided to modify it ourselves.

The original idea to replace all references of 30° to 22° did not give the desired result. It worked well for the left and right projections (faces of the cube), but the top projection has changed incorrectly.

Fig. 1. The plugin results for 30° and 22°

We had to get back to school stereometry lessons. Each isometric transformation on a plane consists of two actions: skewing and rotating the shape.

Fig. 2. Isometric transformation

While the rotation angle for all projections should be the same up to the sign (depending on a cube’s face), the skew angle of the upper face should be different from the side faces. Applying the basic trigonometry functions, and also knowing that the sum of all angles in a triangle is 180° and that the diagonal of a rhombus bisects the angles, we get:

β = 90° - ι;

β + γ = 90° ⇒ γ = 90° - β = α;

χ + 2×γ = 90° ⇒ χ = 90° - 2×γ = 90° - 2×α

where α — isometric transformation angle, χ — the desired angle to skew the upper face.

Fig. 3. Calculating the angle

So, in the general case, the desired angle will be equal to 90° - 2×α (again, up to the sign). It immediately becomes clear why the original 30-degree projection worked without these calculations: 90° - 2×30° = 30°. Since we figured out the angle and developed a formula to calculate it, we decided to modify the plugin so that we could create projections at any angle. After examining the Figma documentation on writing plugins, we were able to add an input field to Easometric to specify the angle. The result works just as required.

Fig. 4. The new plugin

The designer was more than happy. We also decided to send our modifications to the plugin’s author as a pull request, so that they add this to the code.

Recent Posts

From Agent2Agent Prompt Injection to Runtime Self-Defense: How Wallarm Redefines Agentic AI Security

Is an AI-to-AI attack scenario a science fiction possibility only for blockbusters like the Terminator…

2 weeks ago

CISO Spotlight: Lefteris Tzelepis on Leadership, Strategy, and the Modern Security Mandate

Lefteris Tzelepis, CISO at Steelmet /Viohalco Companies, was shaped by cybersecurity. From his early exposure…

3 weeks ago

2026 API and AI Security Predictions: What Experts Expect in the Year Ahead

This is a predictions blog. We know, we know; everyone does them, and they can…

4 weeks ago

Update on React Server Components RCE Vulnerability (CVE-2025-55182 / CVE-2025-66478)

The attack landscape has been dynamic following the disclosure of the React Server Components RCE…

1 month ago

2025 in Review: A Year of Smarter, Context-Aware API Security

As the year draws to a close, it’s worth pausing to look back on what…

1 month ago

Wallarm Halts Remote Code Execution Exploits: Defense for Vulnerable React Server Component Workflows

On December 3, 2025, React maintainers disclosed a critical unauthenticated remote code execution (RCE) vulnerability…

1 month ago