I've reached a major milestone with Mosaic, where ...
# analog-design
p
I've reached a major milestone with Mosaic, where with some hacks and limitations it's possible to draw a circuit, export it to spice and simulate it. Any feedback would be greatly appreciated http://wishfulcoding.nl/mosaic/
👍 1
🙌 4
m
undo button would be nice
cool it's in the browser
p
definitely needs undo!
m
took me a while to work out I needed the pencil to draw wires.
when you drag a component, you get the red dots, so I thought clicking in them would start a wire
drag a box to select multiple components would be nice
p
It actually did that initially. But sometimes it'd accidentally start a wire instead of dragging,
m
tool tips pop up for the settings in the voltage source
or maybe auto populate with reasonable values
p
yes box select is definitely coming.
m
show units?
p
ohhh yea it should definitely have more metadata on the properties good point
Hmmm maybe I'll bring back the dots making a wire... or remove the dots completely. I kinda have to find a way that is 1. consistent 2. intuitive 3. avoids accidental mistakes
m
not obvious to me how I can make wires connect instead of cross over. I don't get the dots like your diagram
image.png
I guess they are not connected
p
Ah yea that's still a missing functionality. Basically it's currently so that different wires can be adjacent without connecting. So if you start dragging from an existing wire it'll add to that wire. What I need to add is that it merges overlapping wires.
So yea that's completely not intuitive right now, but the way to add to a wire is to start dragging from an existing wire.
m
ok, got it
maybe if the mouse is over an existing wire it can highlight a junction so you get a clue
minor, but also I found wires weren't able to keep up with click dragging
image.png
p
Oh interesting idea
m
not moving that fast either
p
haha yea what's worse is that these disconnected segments are still one net, so the other half of the "merge overlapping wires" is "split disconnected wires" Right now you could delete the middle of a wire and be left with an "airwire"
Adding all this to my open issues hehe https://github.com/NyanCAD/Mosaic/issues
On my machine I have to move super fast before it starts skipping tiles 🤔
Is dragging kinda laggy for you? Maybe I just need to optimize stuff a bit. Else I need to do something where it backfills between mouse events.
m
no I'd say dragging a component is fine
t
@Pepijn de Vos: Any possibility of using @Stefan Schippers's implementation of the
gaw
waveform viewer?
p
As far as I know gaw ia s GTK application so not very suitable for use in a web application. Of course anyone is free to visualize their data as they like, but probably the built in visualization method will be more along the lines of Jupyter and/or Plotly
s
Moreover gaw is a very old application, almost orphaned by the original author. I just did some minor tweaks to make it work better with xschem (specifically make schematic cross probing to the viewer possible). However I don't see a great evolutionary path for gaw, unless someone wants to invest a considerable time to understand the details of the source code. In my opinion there are too many issues (flat signal list, very difficult to navigate the list of a big hierarchical design, very slow on big simulation data) that one might consider a rewrite with more modern tools/languages/plotting libraries.
1