Repository navigation
Releases: leandrodaf/3d-new-era-ai
Release list
3D New Era AI v3.1.0
Added
- Radiators in the catalog:
radiator-60,radiator-100andradiator-120(panel, 10 cm deep,
50 cm tall) andconvector-100, hung 15 cm off the floor and found byradiador,
radiator,aquecedor,heater,convectororhvac. A radiator under a window had to be
drawn as a generic solid, with no place in counts. create exact=truekeeps every wall point where it was given. Otherwise wall ends that nearly
touch a wall are still pulled onto it, and the reply now lists each one it moved
(welded=w14.a→[615.7,448.7]). Walls traced from measured pixels came back with ends moved
and nothing saying so.
Fixed
- The editor no longer closes at launch on older Intel Macs (macOS 12): wgpu's validation of
indirect draws builds a compute pipeline the Metal compiler there fails on, which lost the
device. Nothing draws indirectly, so the check is off (WGPU_VALIDATION_INDIRECT_CALL=1turns
it back on). - A wall meeting a stepped junction — the end of a wide pier beside its axis — no longer shares
that junction and gets a sloping long face in the plan. catalog cat=<unknown>answers with the categories there are instead of an empty list.- A paste with nothing readable on the clipboard is no longer reported as an error.
What's Changed
- fix: close the open Sentry reports (Metal crash, clipboard noise, MCP feedback) by @leandrodaf in #89
- chore: release 3.1.0 by @leandrodaf in #90
Full Changelog: v3.0.0...v3.1.0
3D New Era AI v3.0.0
Added
-
A plugin as heavy as a modeler declares
limitsin itsplugin.json—heavy,threads,
memory_mb,nice,timeout_s— and they are applied to its process: on Linux it is pinned
to that many cores, its memory is capped and its priority lowered, and it gets
NEWERA_THREADSfor the program's own thread flag (Blender's--threads). A heavy plugin
runs alone, sharing one slot with photo renders, so the machine's budget is not multiplied by
every caller.run_pluginanswers the peak memory and processor time it used (read from
/proc; not measured elsewhere), the limits applied and those the system could not apply.
An external modeler ran with whatever affinity and priority the agent remembered to set. -
A model library, apart from projects:
edit_library action=publishkeeps a piece's model —
with the files it names, its product photos and measurements, unit, size, brand, page, notes on
what changed and how faithful it is — as the next version of an entry, never changed after;
librarylists entries and versions.place model=library:<name>(or@<v>) puts one in any
project with its photos and measurements, at the size and in the unit it was published with,
andedit_model replace file=library:<name>@<v>goes back to an older one under the same id.
The library is on the desktop only (NEWERA_LIBRARY, or the config folder). Reusing a chair
meant finding its files again, and its photos and checks stayed in the study's folder. -
render_photoanswers for the machine it runs on:estimate=truegives the thread budget
(half the cores, at most four, one render at a time) and the work — pixels, rays, triangles,
images, memory estimated from their sizes — without rendering, and says that time,
temperature and power are not measured;threadslowers the threads it may use,max_s
stops it past a deadline with nothing changed, andcancel=truestops the one running.
sessionsshows the render running (tool, seconds, phase, progress, threads). An agent
could only pick a quality and a size, and a render already running was a refusal to wait on. -
A piece keeps photos and measurements of the product it reproduces, with where they came
from.edit_modelaction=referenceadds a photo (file,view,part,source,note;
remove,clear), which travels with the project;render_3d piece=… ref=iputs it beside
the model, drawn from the photo's side and part.action=measurekeeps a product size
(dimension:width,depth,heightor<part>.height;cm,source,confirmed), and
model id=…lists each against what is drawn, warning when they differ by more than a
centimeter — a seat at 49.5 cm checked apart from the chair's overall height. Photos had to
be downloaded and compared by hand, and a size's source and meaning were not kept. -
render_3dpiece=<id>draws that piece alone — no walls, rooms or other pieces — seen from
its own front, back, left, right or top (aerialis three-quarter), withzoom; the same call
frames the same view wherever the piece stands.part=<name>frames one part of its model,
such as the tip of an arm. Checking a chair against its photos meant a stored camera by
coordinates, with the armchair next to it in the edge of the picture. -
A piece with a heavy imported model can have a lighter file for afar:
edit_model
action=lod(file,beyondcm from the camera, default 400) draws it in the 3D view, the
previews and photos when the camera is farther than that, in the same box, its materials and
parts answering by the same names;detail=alwaysholds the detailed file for a close review,
and exports and top views always use it. The lighter file travels with the project, and one
that cannot be read leaves the piece drawn in full.modelsays where the triangles go —cost {tris, heaviest [[part, tris, %]], copies, in_project}— and warns when a model over 50,000
triangles has no lighter file. The Ares chair's weave was 69 % of its 89,718 triangles, and
nothing said so. -
A texture's alpha can cut holes: a glTF material with
alphaMode: MASK(and its
alphaCutoff), or an MTL whosemap_dis its color image, has holes wherever the image's
alpha is under the cutoff — in the 3D view, the previews and top views, and photos, where
rays and sunlight pass through them — and is seen from both sides when the file says so (an
MTL mask always is). Exports keep it: GLB asMASK, OBJ asmap_d. A cane weave had to be
modeled strand by strand: 62,256 of the Ares chair's 89,718 triangles. -
edit_modelaction=parthides, moves (offset, cm: x across, y to the front, z up) or
resizes (scale, about its center) one named part of an imported model — the back cushion
alone, the arms where they were — andclearputs it back. Every view draws it that way, and
model id=…lists the parts as drawn (a hidden one markedhidden, and left out of
check=clashes), so seat and arm heights read on their own. Moving one cushion meant a new
file. -
edit_modelaction=materialchanges one material of an imported model by the namemodel
lists —color,mat(an image over it),repeat(its texture scale: 2 draws the image at
half size, the piece unchanged),clear— in one undo step. Per-material overrides existed
(a Sweet Home 3D import brings them) but no tool could set one, and a weave drawn too large
could only be fixed in the file. -
place model=…takesunit(m,cm,mm,in) for the file's numbers, and the piece
keeps it formodelandedit_model. The unit was only guessed from the size — under 20 units
meters, over 2000 millimeters — so a 5 cm knob drawn in centimeters came in 5 m wide, and an
800 mm chair 8 m tall. When the guess makes a piece smaller than 10 cm or larger than 4 m, the
reply says so. A glTF whose numbers are not meters, as the standard says they are, is warned
about too. -
A model placed with one or two of
w/d/hscales evenly, keeping its proportions; sizes that
would stretch it unevenly are refused unlessstretch=true, and then the reply gives the
scale on each axis. Asking a chair for its height stretched it. -
modelcheck=clashesfinds the parts of an imported model that pass through one another —
a cushion through a rail — with the triangle pairs, a point where they cross and how deep, in
cm of the piece; surfaces that only touch (a cushion resting on the frame) are not a clash,
andtolsets how far one has to pass the other. It also counts faces with no area, and says
what it did not look at (a part wholly inside another, clearances, flipped normals, open
meshes). The check had to be a script in Blender. -
An imported model keeps its named parts — OBJ objects and groups, glTF nodes — and
model
lists them:[name, triangles, min, max, materials], in cm of the piece (x across, y to the
front, z up), withpart=<words>to keep only some (braco). A repeated name gets#2. The
names come from the file, so they are the same after saving and reopening. The chair was one
lump: telling the left arm from the right, or the seat cushion from the back, meant opening
the file in another program. -
edit_modelaction=replaceputs a new version of a model file in placed pieces in one undo
step, keeping each piece's id, position, angle, storey, size (size=naturaltakes the file's),
finish, material overrides, names and links;every=truedoes it for every piece on the same
file. The new file is read first and nothing changes when it fails;revrefuses the change
when the plan moved on since the revision it was prepared on. The reply names the version
loaded (bytes and a hash), the overrides that no longer match a material the file uses, a kept
size that stretches the new file unevenly and what the file does not draw. A new version was
placethendelete: two pieces in one spot between the calls, a new id, and whatever the
person had set on the old one lost. -
modelreads what an imported OBJ/glTF/GLB became: the unit taken for its numbers (and the
numbers themselves), its natural size, triangles, each material with its color, image and
triangle count, and warnings for what is not drawn as the file says — a material library or
texture not found, normal, roughness and opacity maps, an alpha mask, emission, an extension,
animations. Given a placed piece (id), it also says the scale per axis and warns when the
piece is stretched unevenly.place model=…adds a line per model with such warnings, and
importing from the window says them in the status bar: "it loaded" read as "it looks right",
and finding out why a chair came in gray meant reading the importer. -
Win armchair and Ares cane chair in the living and dining catalogs, with
product dimensions, orientation, model metadata and bundled textured models. Models
and their textures travel with saved projects; placement uses the existing catalog
and MCP tools. Product proportions are preserved when resizing.
Changed
- Breaking for clients that validate output schemas:
render_photo's output schema no
longer requiresmimeType.estimate=trueandcancel=trueanswer in text (JSON), not
with an image, so a client that requiredmimeTypeon every reply must accept both.
Fixed
- A glTF/GLB model keeps its textures. The importer read positions, normals and the base color
factor only, so a chair whose wood and fabric were images inside its GLB came in as flat gray
and white, and the way out was re-exporting it as OBJ. It now keeps each material (its name, the
base color image and, forBLEND, its alpha) and the texture coordinates of the set the image
uses; images inside the GLB or in data URIs are read like any texture file, and one next to a
.gltfis found by its URI,%20and all — a URI that would leave th...
3D New Era AI v2.0.0
Added
ergonomics,electrical,plumbingandlightingtakelevel, the storey to review, as
layoutandhomealready did. They reviewed only the storey shown in the editor, so an agent
had to switch the person's view to review another floor, and a review of the upper floor, left
shown, quietly became the review of the house. The storey shown is left as it was.render_3dtakeslevel: a storey draws it and the ones below,alldraws every one. It drew
what the editor showed — the selected storey and those below — so the same camera rendered the
stair's landing without the floor above it when the ground floor happened to be selected, and
checking the connection meant switching the person's view.- A flight of stairs built by hand is a stair:
update(role="stair")on the group or the solid
that draws it opens its hole in the floor of the storey it climbs to, as the catalog's flight
does. Before, only the catalog's did, so a staircase of drawn treads and landings meant cutting
the upper room's outline around it by hand. - A
rulestool answers what a review checks against — the NBR 5410, 16264, 5626 and 8160
tables behindelectricalandplumbing, what eachcheck_layoutproblem means, how
ergonomicsscores — and the same texts are resources,newera://rules/<topic>. - The MCP tool surface keeps its own rules as it grows, as tests (
docs/MCP-TOOLS.mdlists
them): a byte budget per tool that only goes down, names that say whether a tool reads or
writes, descriptions that neither order the model around nor name a tool that is not there,
choices typed as enums, unknown arguments refused, and a BM25 tool search over the surface
that must keep finding the right tool for 82 requests agents make. - A project says which country and state it is in —
set_home(country=…, region=…), beside
the city it already had — and that decides which codes judge it. A project in the United
States is reviewed against the IRC 2024 (room areas and sides, ceiling heights, daylight, the
clearances in front of fixtures, hallways), the IRC and NEC kitchen outlets and ICC A117.1
for a wheelchair; what those codes leave unsaid is still measured by the Brazilian standards,
as a reference. - Rooms named in English — "Bedroom", "Kitchen", "Powder room" — are recognised by every check,
electrical, plumbing, lighting and Wi-Fi included; before, nothing recognised them. - Review findings can be said in English, and the window shows them in English when it speaks
anything but Portuguese. What they are accepted by does not change. - Installing and uninstalling are counted, per system: the three installers post one event to
3dneweraai.com/pingsaying which operating system and architecture, whether the app came
from a published release or was compiled on the machine, and whether this was the first
install. They draw the installation id the app then uses, so an install and the first run are
one installation in the count and not two. - Crash reports from builds that carry no DSN — what compiling the app yourself gives, unless
NEWERA_SENTRY_DSNis set for the build — now reach Sentry through3dneweraai.com/ping/sentry, which signs the envelope with the DSN the
site holds. Those crashes were seen by nobody before.
Changed
- Breaking: the MCP tools have new names, and some are one tool now (59 → 53, the server
instructions list them all by what they are for). A read is a noun and the tool that changes it is
edit_<noun>:get_home→home,set_home→edit_home,check_layout→layout,
trace_background→background,fill_lighting→edit_lighting,checkpoints→history.
new_home,open_homeandsave_homearefilewithaction;undo,redoandcheckpointare
edit_history;split_wallandmerge_wallsareedit_walls;set_backgroundandtrace_walls
areedit_background;export_planandexport_cut_listareexport(what=cut_listfor the
cut list). The skills, the hosted service and the browser tab speak the new names; an agent that
calls an old one is told the tool does not exist. - The tool list an agent reads on every conversation is a quarter smaller (149 KB to 113 KB): the
reviews' descriptions say what they answer and point torulesfor the tables, output schemas go
out without their field descriptions, and defaults that only restate absence are left out. The
descriptions use the words people search with, so a tool search finds the right tool for all 86
requests in the test set, and the first three hold it for 96.5 % of them (90 % before). - A tool that refuses a call answers inside the result (
isError) on the desktop andnewera mcp,
as the hosted service and the browser tab already did, so the agent reads why and tries again
instead of a client showing a protocol error to nobody. - Every tool refuses an argument it does not have, by name and with what it takes instead —
before, forty of them dropped it in silence, so a misspelleddrywrote. An argument given with
an action it does not belong to (dxwithrotate) is refused the same way. Every choice
(action,kind,view,quality…) lists its values in the schema, anddry,fixedand
facingsay what they take when given something else. - How much a standard obliges depends on where the project is: an ABNT standard is an error in
Brazil and a warning in Miami, and the IRC the other way round. Electrical, plumbing and
railing findings follow the same rule, so NBR 5410 no longer accuses a project abroad. - The lighting reply cites the table each reference value comes from — NBR 5413 or
NBR ISO/CIE 8995-1 — instead of both every time. - The usage count no longer needs a secret inside the binary: it goes to the site's own
endpoint, which holds the Google Analytics secret and forwards it. Releases were being built
without that secret, so nothing was counted at all; and a build from source counted nothing by
design. Both now count the same. - The count says the country Cloudflare already knows from the connection, and the visitor's
address is not passed on to Google. - A debug build and CI count nothing and report nothing, which is what the missing secret used
to accomplish by accident.
Fixed
- A door, a point or a cabinet put on a wall now stands on that wall's storey. Before,
place,
joineryandcabinet_runput it on the storey shown: a door given a ground-floor wall while
the upper floor was selected was made upstairs, loose and opening nothing, and an outlet on
that wall was refused as having no wall to hold it. Fixed points are also judged against the
walls and ceilings of their own storey. layout(level="all")no longer lists every piece that stands over another on the storey
below. Pieces of two storeys were an overlap wherever their plans crossed — a sofa downstairs
and a bed upstairs, a roof over the furniture — which buried a real problem under hundreds of
cross_levelrows with no height shared. They are now one only where they share height in the
building (storeys drawn at the same elevation, a piece reaching into the storey above), and
the extent's z is that shared height.ergonomicsjudges a bathroom as a bathroom. A bowl set into a vanity — a "cuba" — was read as
a kitchen sink wherever it stood, so a bathroom with a countertop and a bowl, or a double vanity,
was reviewed as a kitchen (the five work zones, 366 cm of counter) and still said to have no
basin. A bowl in a bathroom is now a basin; a bathroom or a laundry is never reviewed as a
kitchen; and the cabinet under a vanity asks the basin's 40 cm in front, not a kitchen's 85.ergonomicscounts the whole house for what it says of the house. Beds, bedrooms, bathrooms,
seats at the table and wardrobes were counted on the storey shown only, so reviewing the upper
floor of a house said there was no seat at the table and no bathroom — and advised adding them.
capacityand the occupancy findings now add up every storey being designed.- A glass sliding door lights and airs its room in
ergonomics, as the French window already
did. The catalog'sdoor-slidingis drawn with glass leaves, but only windows were counted, so
a living room opening onto its balcony through a 220 × 220 cm glass door was said to have no
window. edit_lightingkeeps every fixture it places whole inside the room. It kept only the centers
inside, so in an L-shaped room a column of the grid could fall a few centimeters from the inner
corner's edge and the fixtures there crossed into the next room (layoutthen called them
outside_rooms). A fixture now stands at least half its diagonal off every edge.- A guard in front of a window no longer blocks it in
layout. A bar railing, a glass
balustrade or a balcony closure was measured by its box, as if it were a solid panel, so a
landing guard across a stair window came out asblocks_window. Guards are now left out, like
plants and glass already were. homesays a piece's finish, asmat, in the wordsplaceandupdatetake it. It said a
wall's and a floor's, never a piece's, so a finish set on a cabinet front could not be read back
to check it had taken — and a dry run of a new finish answered that nothing changed.- A finish that is only a color —
mat:"#c8b89a"onplace,updateor a solid — paints the
piece. It was stored as a finish the 3D does not draw (a piece draws a pattern or an image), so
the call was accepted and nothing changed on screen; it now sets the piece's color, unless a
coloris given in the same call. - An item set into joinery — a sink bowl, a cooktop, an oven — takes its own
color,matand
opacityinupdate. It was refused like a board the host builds, so repainting a bathroom
meant leaving the bowl as it was or changing the countertop around it. The item is carried ...
3D New Era AI v1.10.0
Changed
- The paid plan is supported through Buy Me a Coffee instead of Paddle, whose
verification a seller in Brazil could not get through. The account page sends people to
the Buy Me a Coffee membership page and the webhook (/billing/buymeacoffee) follows
themembership.*andrecurring_donation.*events. A cancelled membership keeps the
plan until the end of the period already paid for, as before. - What ties a payment to an account is the address it was paid with, not an id carried
through the checkout: Buy Me a Coffee's page takes nothing of ours along. The support
page shows the account's address and asks for it, and an address with no account yet
gets the one a sign-in link would have made. - Closing an account no longer stops the charges: Buy Me a Coffee gives a seller no way
to cancel a membership. The account page says so before and after closing, and the
plan stops here either way. The warning counts the subscriptions left from Paddle too,
which used to be cancelled through an API this no longer holds a key for. - A support button, in Buy Me a Coffee's yellow, at the left of the bar on the site, at
the right end of the editor's tool bar — desktop and browser — and on the account
pages. It follows the language around it; the membership is charged in US dollars
wherever it is pressed. Too narrow for words, the editor's becomes one more button the
size of the tools beside it, with the cup alone, and the tools scroll underneath rather
than pushing it off the edge. - The pricing, terms, refund and privacy pages show one language instead of stacking two.
They pick it the way the home page does —?lang=, then what was last chosen, then the
browser — and carry a PT/EN switch. Both texts stay in the page for a reader without
JavaScript and for a crawler, and the tab's title follows the language too. - Those four pages name the project's maintainer rather than a company, and no longer
claim a merchant of record: Buy Me a Coffee is a platform, not a reseller, so the
seller is whoever maintains the project and the tax is theirs. Prices are stated in US
dollars, the currency actually charged — Paddle's localised checkout is gone. - Documentation for contributors, in English: a rewritten README, a docs index,
docs/STANDARDS.md(wasNORMAS.md),docs/DISTRIBUTION.md, andSECURITY.mdand
CODE_OF_CONDUCT.mdat the root.makelists its targets in English. - The example plugin is
examples/plugins/room-areas(wasplugins/quadro-areas), in
English. Showcase images have English file names. - The review bot reads its rules from
.coderabbit.yamlin the repository instead of a
dashboard nobody outside the org can see: clippy treated as a build failure, the
newera-mcptool shapes treated as a public contract, and outside contributors
allowed to talk to the reviewer on their own pull request. - A prose-only change no longer runs the whole CI. Editing a README,
docs/or an issue
template used to spend eighteen minutes across seven jobs to prove that Markdown still
compiles. Markdown runs a Docs workflow instead — markdownlint against rules the
repository carries in.markdownlint-cli2.jsonc, spelling, and the relative links
between pages, so a renamed page cannot quietly orphan the link to it.make docs-lint
runs the same three locally. A licence file runs nothing at all, having nothing any of
the three can check. The plugin's own Markdown is exempt from the exemption: the Format
job validates everySKILL.md. mainis protected: a pull request with its checks green is the only way in, force
pushes and deletion are refused, and history stays linear. The path filtering that
skipped prose moved out of the workflow triggers and into aChanged pathsjob, because
a required check that never reports blocks a pull request forever while a skipped one
counts as a pass.scripts/changed-kind.shdecides, and proves itself against a table
of cases on every run.
A singleCIandDocscheck speaks for the jobs behind it, because a matrix job that
is skipped reports once under its unexpanded name and the per-OS names would never
arrive on a prose-only run.
Removed
- Internal planning notes and launch material from
docs/, personal helper scripts,
and thepackaging/snapshots of 1.7.0; releases generate the winget and Homebrew
files themselves.
Fixed
- The ground no longer shows through a doorway. A floor stopped at the inner face of the
walls around it, so the band under a wall belonged to no room and the grass showed
through wherever a door or a passage cut the wall away. Floors now run under the walls
they touch: to the middle of a wall with another room behind it, where the two floors
meet as they do at a real threshold, and through to the far face of a wall with nothing
behind it. - A long name no longer pins the side panel open. A plan note a paragraph long
("AÉREOS: 80 geladeira + 106 cozinha…") made the panel as wide as itself and the drag
handle could not bring it back. Names are cut short with an ellipsis and shown in full
on hover, and a click on a name now selects its row instead of selecting the text.
What's Changed
- fix: floors under the walls, a long name that pinned the panel open, and a twenty-second dev loop by @leandrodaf in #20
- chore: a profile to develop on, and the plan you are debugging reopened after every build by @leandrodaf in #21
- chore: the review bot reads the house rules from the repo by @leandrodaf in #22
- chore: prose leaves the Rust CI and gets a gate of its own by @leandrodaf in #23
- chore: the checks report a status even when they have nothing to do by @leandrodaf in #24
- fix: one check per workflow, because a skipped matrix hides its names by @leandrodaf in #26
- docs: how a change lands, now that main will not take one directly by @leandrodaf in #25
- feat: the paid plan is supported through Buy Me a Coffee, not Paddle by @leandrodaf in #27
- fix: the support button moves to the right end of the tool bar by @leandrodaf in #28
- chore: release 1.10.0 by @leandrodaf in #29
Full Changelog: v1.9.2...v1.10.0
3D New Era AI v1.9.2
Changed
- mcp.3dneweraai.com, opened in a browser, goes to 3dneweraai.com instead of a blank
"not found".
Full Changelog: v1.9.1...v1.9.2
3D New Era AI v1.9.1
Changed
- The paid plan is sold through Paddle instead of Polar, which cannot pay out to a seller
in Brazil. The account page opens Paddle's checkout (/billing/checkout), shows the
price in the buyer's currency, and "Manage subscription" opens Paddle's customer portal.
Closing an account stops the charges at the end of the paid period. - The site has a pricing page and a refund policy (full refund within 14 days), and the
terms name the seller and Paddle as the merchant of record.
Full Changelog: v1.9.0...v1.9.1
3D New Era AI v1.9.0
Added
- Every tool declares an output schema, and every answer carries
structuredContent
laid out from what it already says: a JSON object as it is, a list underrows, an
ok rev=N ids=…line split into its fields, an image as its type. The text the tools
answer is unchanged. - Every argument of every tool says what it is, nested shapes included.
- The MCP handshake names the server's icon, description and website.
- The plugin points at the hosted server (mcp.3dneweraai.com), so it works with nothing
installed;3d-new-era-ai-desktopkeeps the local app and its live window. - A public page at 3dneweraai.com/connector/ says how to add the hosted server to Claude
and ChatGPT.
Changed
- Every hosted tool declares the OAuth scheme it needs, and sign-in accepts the
offline_accessscope ChatGPT asks for to stay signed in.
Fixed
- With the walls down or cut away in the 3D view, what is held up from the floor stays
however close to a wall it stands: a worktop on its cabinets, a desk top on its frame,
a vase on the worktop and a cabinet's own top board used to vanish with the wall. Only
what hangs on a lowered wall goes now, and whatever rests on it. - The site's one-click buttons and legal links are big enough to tap.
What's Changed
Full Changelog: v1.8.0...v1.9.0
3D New Era AI v1.8.0
Added
- The plan shows up inside the chat:
show_planopens an interactive viewer (pan, zoom,
a 3D view on a click, "open in the editor") in clients that speak MCP Apps — Claude,
ChatGPT, VS Code and others. - Every tool says whether it only reads or changes the plan, with a title, so an AI
client runs reads without asking and asks before each change. Reads and changes are
separate tools now:cameras/edit_cameras,levels/edit_levels,video/
edit_video,variants/edit_variants,checkpoints/checkpoint,plugins/
run_plugin,disciplines/edit_disciplines,electrical/edit_electrical,
plumbing/edit_plumbing,lighting/fill_lighting,annotations/
edit_annotations,trace_background/trace_walls,cut_list/export_cut_list;
findings of every review are accepted withaccept, and who lives there is kept with
set_home(people=…). newera mcp(stdio) edits the plan in the open window when the editor is running;
--standalonekeeps a project of its own.- One-click installs:
newera-mcp.mcpbfor Claude Desktop in every release, a plugin
with skills for Claude Code, Codex, Cursor and Gemini CLI, and buttons for Cursor, VS
Code and LM Studio. - Accounts at mcp.3dneweraai.com: sign in with an emailed link, and Claude, ChatGPT and
other AIs reach your editor tab at one fixed address, with no secret to paste. With no
tab open they work on projects kept in your account, and exports come back as links. - Privacy policy and terms of use on the site.
Changed
- The editor's AI link comes back by itself, at the same address, when the service
restarts. - A project opened by link (
?project=) opens even when the tab had work of its own to
restore.
Fixed
- The AI link no longer stays on "connecting" forever when the relay refuses a tab.
show_plansaid "-0 m²" for an empty plan.
Full Changelog: v1.7.0...v1.8.0
3D New Era AI v1.7.0
Added
- Axes in the top right corner of the 3D view, as in Blender. Click a ball to look at the
house from the front, back, left, right or top; drag the disc to orbit. The top view
reads like the plan, x right and y down. - Walls in the 3D view can come down to show the rooms: up, cutaway (the walls between
the camera and a room drop to 40 cm and follow the camera as it turns) or down.
Ceilings, roofs and the doors, windows and pieces hanging on lowered walls hide with
them. Three buttons in the toolbar and the View menu switch it. render_3dtakeswalls=cutaway|downto draw the same way, so an agent can see the
furniture of a room from the side.
Fixed
- The selected tool and the AI button in the toolbar no longer change size when the
pointer goes over them, which nudged the buttons beside them.
What's Changed
- Name every ergonomics rule so wording stops being identity by @leandrodaf in #14
- fix: keep the selected tool and the AI button the same size on hover by @rfoel in #18
- feat: add axes to the 3D view to look from each side by @rfoel in #15
- feat: bring 3D walls down to show the rooms by @rfoel in #17
New Contributors
Full Changelog: v1.6.0...v1.7.0
3D New Era AI v1.6.0
Added
- Every catalog item is marked with its front and back, and with whether its back belongs
on a wall (bed, sofa, wardrobe, toilet, TV), stands free (armchair, chair) or has no
front at all. The catalog tool lists it, and a test keeps new items from going unmarked. placetakesfacing(+x,-x,+y,-y, a point or an element id) instead of an
angle, and its reply says where each front ended up. A piece whose back belongs on a
wall, placed beside one with no angle, turns its back to that wall.check_layoutreportsbackwards: a sofa, bed or toilet facing the wall its back
belongs on, with the angle that turns it around.catalog_facesexample renders every catalog item from the front and from the back.
Fixed
- Pendants, spots, LED panels and ceiling points stay on the ceiling the 3D draws — flat,
sloping or under a roof — through every edit, storey height change and project load.
A pendant keeps its shade height and its cord takes the difference. - Recessed spots set into the slab are no longer reported as above the ceiling.
- The editor's WebGL notice names the real cause on Chrome for Linux, where WebGPU ships
turned off, and says how to turn it on.
Changed
- rmcp 3.4.0 (
ServerConfig), clap 4.6.7, and current GitHub Pages and Wrangler actions.
What's Changed
- chore(deps): bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #6
- chore(deps): bump cloudflare/wrangler-action from 3 to 4 by @dependabot[bot] in #7
- Bump clap to 4.6.7 and rmcp to 3.4.0 by @leandrodaf in #10
- Name the real cause when the editor falls back to WebGL by @leandrodaf in #11
- Mark every catalog item's front and stop agents placing furniture backwards by @leandrodaf in #12
- Keep spots, panels and pendants hung from the ceiling the 3D draws by @leandrodaf in #13
New Contributors
- @leandrodaf made their first contribution in #10
Full Changelog: v1.5.0...v1.6.0