# Lib: why changed dat.gui to lil-gui?

**URL:** <https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124>\
**Category:** Questions\
**Tags:** libraries\
**Created:** [February 29, 2024, 8:34pm UTC](https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124 "2024-02-29T20:34:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![lrn](https://avatars.discourse-cdn.com/v4/letter/l/a183cd/32.png) [@lrn](https://discourse.threejs.org/u/lrn)\
**Post date:** [February 29, 2024, 8:34pm UTC](https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124/1 "2024-02-29T20:34:56Z")

</div>

Hi

Some time ago I was familiar that three js used dat.gui lib for UI controls, but now I see that it is replaced by lil-gui.

I need similar library for my other projects and want to choose best lib for myself and if someone can help with explain why it was replaced and what is good in new library it will be pleasure to me.

---

<div class="post-metadata">

**Author:** ![donmccurdy](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/donmccurdy/32/33209_2.png) [@donmccurdy](https://discourse.threejs.org/u/donmccurdy)\
**Post date:** [February 29, 2024, 11:19pm UTC](https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124/2 "2024-02-29T23:19:47Z")

</div>

dat-gui is no longer maintained, and hasn’t been updated in two years. A few options that are very similar, but still updated, would be:

- [lil-gui](https://lil-gui.georgealways.com/#)
- [tweakpane](https://tweakpane.github.io/docs/)
- [leva](https://github.com/pmndrs/leva) (for React)

lil-gui is basically a drop-in replacement for dat-gui, so that’s the easiest upgrade. Leva’s similar but specialized for React. Tweakpane has a good plugin ecosystem if you need more UI options. All good choices in my opinion.

---

<div class="post-metadata">

**Author:** ![seanwasere](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/seanwasere/32/20864_2.png) [@seanwasere](https://discourse.threejs.org/u/seanwasere)\
**Post date:** [March 1, 2024, 11:10pm UTC](https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124/3 "2024-03-01T23:10:05Z")

</div>

I’m a fan of the old [dat.gui](https://sbedit.net/1e64b476676f6f945af94f278a392aba642d135c).

It continues to work well, and will stand the test of time because of it’s simplicity.

But, lets just imagine hypothetically, that all the GUI developers in the world just suddently stopped maintaining their libraries. You could always just add your own HTML controls over your top of your canvas element.

E.g.,

> **[Click Me](https://editor.sbcode.net/8961e9e1b02b1415de209bc48cb654fffdd804e1)**
>
> When none of the GUI libs work any more

---

<div class="post-metadata">

**Author:** ![manthrax](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/manthrax/32/2596_2.png) [@manthrax](https://discourse.threejs.org/u/manthrax)\
**Post date:** [March 2, 2024, 1:59am UTC](https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124/4 "2024-03-02T01:59:06Z")

</div>

I’ve used both lil-gui and tweakpane, and both leave a bit to be desired imo. but in a way… it encourages you to treat them as debugging tools and not to build grander UI around them, which might be a good thing. Keeps them small and purposeful.

---

<div class="post-metadata">

**Author:** ![manthrax](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/manthrax/32/2596_2.png) [@manthrax](https://discourse.threejs.org/u/manthrax)\
**Post date:** [March 2, 2024, 1:59am UTC](https://discourse.threejs.org/t/lib-why-changed-dat-gui-to-lil-gui/62124/5 "2024-03-02T01:59:41Z")

</div>

@seanwasere Cool link! I hadn’t seen [sbedit.net](http://sbedit.net) before… looks interesting!
