LDraw.org Discussion Forums

Full Version: JBrickBuilder - an easy LDraw builder in Java
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
NB: from october 2015 this software become unmaintained. No updates, no bugfixes, no support.
I'm sorry for that, but my time is really limited, so I prefer return back to a simple user and LEGO builder.
This software costs over a year of work, but due to lack of interest it is better to use my time for other activities.
Sorry again.

(original message follows)
-----------------------------------------------------------------------

Hi all.

I'm pleased to announce:
JBrickBuilder
a LEGO builder in Java for LDraw part library.

[Image: jbrickbuilder-aa.png]

Program is in beta and it is completed at 60%, so most functions are planned but absent in this release.

I use a connection database I built to allow "snapping" of parts when you move a brick near another. For some connection type program also align part with receiving part, so building winged or "snotted" model is not so difficult.

Connection database is in zip form and downloaded at first start. It is far from complete, but constantly grows: in last release it contains over 480 parts (decorated parts uses same connection of plain parts, so minifig torso is one part in connection database, but it is used for all 300 torso in library, so probably working parts are a lot more) and program is able to auto-detect connections for lots of parts.

When connection does not work, you always fall back on "placing grid", a plane that use snap and orientation to place parts.

Program is on Sourceforge:
https://sourceforge.net/projects/jbrickbuilder/
with manual (english, PDF).

To get program working you need only the .JAR file. All needed files are downloaded automatically at first run.

Last release: 0.4.1 (2015-06-12)
Parts with verified connections: 1260 (520 in database, 740 autodetected and verified)

A short video on jBrickBuilder flexible parts editor: https://youtu.be/xvohL50gI9Q

Informations about connection model and algorithm is here:
http://forums.ldraw.org/showthread.php?tid=15255

Flexible parts model is here:
https://sourceforge.net/projects/jbrickb...flexparts/



Mario
Hello, i tried and run it but it looks like the downloads doesn't work behind a proxy. Is it supported somehow?
Also, why you require the user to download the library instead of just using the one already available (if he has any)?
Hi Nicola.

Nicola Wrote:i tried and run it but it looks like the downloads doesn't work behind a proxy. Is it supported somehow?

Not inside application at the moment. You can set proxy properties on java command line, as explained here.

Nicola Wrote:Also, why you require the user to download the library instead of just using the one already available (if he has any)?

Mainly because program is an early beta Big Grin
Next releases will handle properly library choices.

Mario
... and we have v0.1.5.

New release, new features:
- selection by dragging window
- selection by LDraw ID
- selection by color
- save selected as block/template
- over 80 new part connection data (included minifig and most Friends™ figures)
- 500 parts connection data available and verified.
- some bug fixed

Program is on Sourceforge:
- JBrickBuilder (Java JAR)
- manual (english, PDF).

Other information, connection model and strategy are in "Files" section on Sourceforge page.

Thank you.

Mario
Oh, can't wait to try it out. Does the new selection methods mean we can move a part that we already placed, guess I'll find out soon enough.

Thank you
Hi Jason.

Yes, you can select parts by direct click on it (plus Shift and CTRL modifiers for "add" and "toggle"), by part id, by color index and by dragging a window on screen.

Moving requires a click on a button (next release I'll add an hotkey, presumably 'm').

Mario
Hi all!

[Image: jbrickbuilder-aa.png]

Release 0.1.7b is out. Main improvements:
- new antialias option for better graphic results (disabled by default)
- new connection search strategy using a simple spatial index-like data structure and ray-to-AABB collision
- experimental new grid and pointer matrix separation for simpler SNOT model editing
- 12 primitives added to connection autodetect function
- in part list search, highlighting for parts with connection in database or verified autodetection
- bugfixes

Connection database now lists 570 parts.

Enjoy!

Mario
Thank you Mario, this is coming along nicely.

A question... when I select an already placed brick and hit the move button it flips it upside down for some reason? I then need to place it someplace and select it again to get it to flip it back right side up.

Is simply selecting and dragging with the mouse being looked at as an option?
Hi Jason.

No, it's a bug I triggered when I changed code for generic part rotation. I hope to release a fix in next days. When "flipping" happens, you can reset rotation matrices hitting buttons with brush in left toolbar.
Who said that a normal program has 1 bug every 100 lines of code was an incurable optimist... Big Grin

At the moment using click&drag to move parts appears a bit complex to do, and introduces some side effects. One is (like LDD) if you want to select by window a group of parts but you first click on a part, you start moving it, instead of dragging a window. I'm not excluding to add a such function, but program needs lots of function to be added to become fully usable, and some are added in a raw fashion, awaiting to be enhanced when program will be quite "stable".

Thanks for your feedback

Mario
Hi all.

Apologies for my long silence, but in few days I'll release new JBrickBuilder version.

Program was partially restructured to make it more modular, from editor point of view, and I'm thinking to a plugin infrastructure to add editor functions.

Meanwhile, I like to introduce a model for flexible/bendable parts, used in upcoming release:
a short writing is here.

Model is still rough, and need improvements, but I think it is a good starting point.

Thanks to:
Orion Pobursky, Don Heyse, Kevin Clague, Allen Smith – for LSynth creation and source code availability.
Willy Tschager, Philippe Hurbain, Steve Bliss, Chris Dee, Larry Pieniazek – for some part design used directly or modified in present model (see flexpartDefs.xml data file)

Mario
Pages: 1 2