# \[ANN\] ArraySynthesis.jl: Antenna array pattern synthesis via convex optimization

**URL:** https://discourse.julialang.org/t/ann-arraysynthesis-jl-antenna-array-pattern-synthesis-via-convex-optimization/138459
**Category:** Package Announcements
**Tags:** optimization, engineering
**Created:** [July 24, 2026, 6:06pm UTC](https://discourse.julialang.org/t/ann-arraysynthesis-jl-antenna-array-pattern-synthesis-via-convex-optimization/138459 "2026-07-24T18:06:43Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Uve](https://avatars.discourse-cdn.com/v4/letter/u/82dd89/32.png) [@Uve](https://discourse.julialang.org/u/Uve)
#### Post date: [July 24, 2026, 6:06pm UTC](https://discourse.julialang.org/t/ann-arraysynthesis-jl-antenna-array-pattern-synthesis-via-convex-optimization/138459/1 "2026-07-24T18:06:44Z")

</div>

> **[GitHub - uvegege/ArraySynthesis.jl: Antenna array pattern synthesis via convex...](https://github.com/uvegege/ArraySynthesis.jl)**
>
> Antenna array pattern synthesis via convex optimization

Hi everyone!

I’d like to announce **ArraySynthesis.jl** , a Julia package for antenna array pattern synthesis.

ArraySynthesis.jl provides a high-level, domain-specific interface for formulating array factor synthesis problems for arbitrary array geometries. It supports several excitation models (arbitrary excitations, real amplitudes, progressive phase and conjugate symmetry) and a range of common synthesis objectives, including:

- Minimum sidelobe level (MinSLL)
- Maximum array factor in a given direction (MaxAF)
- Sparse/thinned array synthesis
- Multipattern synthesis
- …and more

The package currently focuses on array factor synthesis, so effects such as mutual coupling are not considered.

Optimization problems are built using **JuMP** , so they’re compatible with a wide range of solvers.

As a quick example, here’s a flat top beam with a controlled ripple and low sidelobes on both sides, using a symmetric linear array:

```julia

using ArraySynthesis
using ArraySynthesis: °, dB
using HiGHS

beam_region = region(12.5°..37.5°, 1°)
sll_region1 = region(-90°..6.5°, 1°)
sll_region2 = region(43.5°..90°, 1°)

p = pattern(shaped_beam(beam_region, 1.0, ripple = -0.6dB))
obj = MinSLL(join_regions(sll_region1, sll_region2))
array = symmetric_linear_array(24, d = 0.5)

result = synthesize(array, p, obj, ConjugateSymmetricWeights(), LP(), HiGHS.Optimizer)

```

And a quick glimpse at a few of the things you can build with it:

 ![readme_patterns](https://global.discourse-cdn.com/julialang/original/3X/a/4/a4d273c2e47eb3a46257bc4db7603021728f5ca8.jpeg)

This project started from a collection of MATLAB scripts and examples I wrote some years ago while studying antenna array synthesis using convex optimization. I recently decided to revisit that work and give those ideas a more structured form as a Julia package. It is certainly a niche topic, but I hope some of you will find it interesting.

* * *

Documentation: [https://uvegege.github.io/ArraySynthesis.jl/](https://uvegege.github.io/ArraySynthesis.jl/)

The package isn’t registered yet, but you can try it out by adding it directly from the GitHub URL: `Pkg.add(url="https://github.com/uvegege/ArraySynthesis.jl")`

Feedback and suggestions are very welcome!
