{"ui.home":"Home","ui.tools":"Tools","ui.projects":"Projects","ui.guides":"Guides","ui.myProjects":"My projects","ui.allTools":"All tools","ui.language":"Language","ui.unit":"Length unit","ui.currency":"Currency","ui.search":"Find a tool","ui.searchPlaceholder":"Slats, frames, volume…","ui.heroLead":"From the first piece to the shopping list. 24 visual tools to shape your woodworking ideas.","ui.localBadge":"On your device","ui.collectionLead":"Choose a task. Check every dimension.","ui.openTool":"Open tool","ui.noResults":"No tools found.","ui.projectName":"Project name","ui.defaultProject":"My woodworking project","ui.save":"Save project","ui.saved":"Project saved on this device.","ui.storageError":"Browser storage is unavailable. You can keep calculating and export a file before leaving.","ui.exportJSON":"Export project","ui.importJSON":"Import project","ui.imported":"Project imported. Check the dimensions.","ui.invalidFile":"Invalid project file. Your data was not replaced.","ui.inputs":"Dimensions & materials","ui.result":"Your plan, measured","ui.calculate":"Calculate & update drawing","ui.example":"Reset example","ui.dirty":"Dimensions changed. Calculate to update the result.","ui.resultEmpty":"Enter dimensions to see your plan.","ui.resultUpdated":"Result updated.","ui.add":"Add","ui.remove":"Remove","ui.piece":"Part","ui.item":"Item","ui.name":"Name","ui.length":"Length","ui.width":"Width","ui.height":"Height","ui.depth":"Depth","ui.thickness":"Thickness","ui.qty":"Quantity","ui.count":"Count","ui.material":"Material / colour","ui.band":"Band colour","ui.bandWidth":"Band width","ui.grain":"Lock grain along length","ui.edges":"Banded edges","ui.edgeL1":"Top long edge","ui.edgeL2":"Bottom long edge","ui.edgeW1":"Left short edge","ui.edgeW2":"Right short edge","ui.parts":"Parts list","ui.stocks":"Available stock","ui.costs":"Cost items","ui.sections":"Measured sections","ui.mode":"What do you want to calculate?","ui.modeCount":"Known count; calculate gap","ui.modeGap":"Target gap; adjust count","ui.modeFixed":"Keep gap and centre layout","ui.itemWidth":"Width of each board","ui.gap":"Gap / joint","ui.leftMargin":"Left margin","ui.rightMargin":"Right margin","ui.startGap":"Include a gap at the start","ui.endGap":"End joint / gap","ui.endGapToggle":"Include a gap at the end","ui.endAllowance":"Allowance at each band end","ui.waste":"Waste allowance (%)","ui.rollLength":"Length of each roll","ui.rollPrice":"Price per roll","ui.bandThickness":"Band thickness","ui.finished":"Input dimensions are finished sizes","ui.priceM3":"Price per m³","ui.priceBF":"Price per board foot","ui.basis":"Dimension basis","ui.nominal":"Entered nominal dimensions","ui.actual":"Measured actual dimensions","ui.value":"Value to convert","ui.from":"Source unit","ui.denominator":"Inch fraction precision","ui.reference":"Measurement reference","ui.inside":"Visible inside opening","ui.outside":"Outside dimension","ui.rebate":"Rabbet / rebate","ui.profile":"Profile width","ui.topMargin":"Top margin","ui.bottomMargin":"Bottom margin","ui.pitch":"Hole pitch","ui.startMargin":"Start margin","ui.endMargin":"Minimum end margin","ui.setback":"Row setback","ui.rows":"Rows","ui.centered":"Centre the sequence in the usable area","ui.faces":"Faces to finish","ui.coats":"Number of coats","ui.coverage":"Label coverage (m²/L per coat)","ui.includeEdges":"Include all four edges","ui.packLitres":"Container volume (L)","ui.packPrice":"Price per container","ui.unitPrice":"Unit price","ui.hours":"Working hours","ui.hourlyRate":"Hourly rate","ui.overhead":"Additional overhead","ui.margin":"Margin on sales (%)","ui.fees":"Sales fees (%)","ui.tax":"Sales taxes (%)","ui.stockLength":"Stock length","ui.trim":"Trim at each end / edge","ui.joints":"Allow lengthwise joints","ui.boardPrice":"Price per board","ui.fit":"Front fit","ui.inset":"Inset","ui.overlay":"Overlay per side","ui.overlayMode":"Overlay","ui.reveal":"Outer reveal per side","ui.sideClearance":"Side clearance per side","ui.verticalClearance":"Total vertical clearance","ui.backClearance":"Rear clearance","ui.bottomThickness":"Bottom thickness","ui.grooveDepth":"Bottom groove depth","ui.bottomFit":"Bottom construction","ui.grooved":"In a groove","ui.under":"Applied underneath","ui.backThickness":"Back thickness","ui.shelves":"Number of shelves","ui.shelfSetback":"Additional shelf setback","ui.backFit":"Back construction","ui.applied":"Applied outside","ui.between":"Between carcass parts","ui.joint":"Joint between two parts","ui.slope":"Slope from rise and run","ui.jointAngle":"Inside joint angle","ui.run":"Horizontal run","ui.rise":"Vertical rise","ui.diameter":"Reference outside diameter","ui.corners":"Across opposite corners","ui.flats":"Across opposite flats","ui.kerf":"Saw kerf","ui.strategy":"Guillotine cutting strategy","ui.auto":"Compare strategies","ui.vertical":"Rip first","ui.horizontal":"Crosscut first","ui.rotate":"Allow rotation of grain-unlocked parts","ui.density":"Entered density (kg/m³)","ui.method":"Scaling method","ui.smalian":"Smalian","ui.huber":"Huber","ui.newton":"Newton","ui.diameterBase":"Large-end diameter","ui.diameterMid":"Midpoint diameter","ui.diameterTop":"Small-end diameter","ui.bark":"Diameter measurement basis","ui.over":"Diameters measured over bark","ui.underBark":"Diameters measured under bark","ui.barkThickness":"Radial bark thickness","ui.position":"Cumulative position","ui.estimateSolid":"Estimate solid volume using an entered factor","ui.solidFraction":"Measured solid factor (between 0 and 1)","ui.priceBasis":"Price basis per m³","ui.stacked":"Stacked volume","ui.solid":"Estimated solid volume","ui.postWidth":"Post width","ui.maxBay":"Chosen maximum centre spacing","ui.postPrice":"Price per post","ui.ratioA":"Component A parts","ui.ratioB":"Component B parts","ui.amount":"Reference amount","ui.thinner":"Thinner (%)","ui.mixBasis":"Manufacturer ratio basis","ui.massMode":"Mass","ui.volumeMode":"Volume","ui.mixUnit":"Mixture unit","ui.dilutionBasis":"Thinner percentage is based on","ui.base":"A + B mixture","ui.final":"Final mixture including thinner","ui.totalMode":"Desired final amount","ui.component":"Available amount of A","ui.clearGap":"Clear gap","ui.centerSpacing":"Centre spacing","ui.linearTotal":"Total length","ui.start":"Start","ui.center":"Centre","ui.netBand":"Band on parts","ui.buyBand":"Band including allowance","ui.rolls":"Rolls to buy","ui.leftover":"Remainder","ui.totalCost":"Total cost","ui.area":"Area","ui.volume":"Geometric solid volume","ui.mass":"Estimated mass","ui.boardFeet":"Board feet","ui.fraction":"Fractional inches","ui.roundingError":"Fraction rounding error","ui.mm":"Millimetres (mm)","ui.cm":"Centimetres (cm)","ui.m":"Metres (m)","ui.in":"Inches (in)","ui.ft":"Feet (ft)","ui.outsideWidth":"Outside width","ui.outsideHeight":"Outside height","ui.outsideDepth":"Outside depth","ui.insideWidth":"Inside opening width","ui.insideHeight":"Inside opening height","ui.cutAngle":"Saw: angle from a square cut","ui.longPoint":"Long point","ui.shortPoint":"Short point","ui.bottomPosition":"Bottom face from the base","ui.topPosition":"Top face from the base","ui.hole":"Hole","ui.holes":"Total holes","ui.deck":"Deck boards","ui.firstPosition":"First position","ui.lastPosition":"Last position","ui.litresNeeded":"Finish required","ui.packs":"Containers to buy","ui.projectCost":"Project cost","ui.sellPrice":"Selling price","ui.profit":"Calculated profit","ui.markup":"Markup on cost","ui.labour":"Labour","ui.feesAndTax":"Fees and taxes","ui.boards":"Boards required","ui.buyCount":"Parts including allowance","ui.lastWidth":"Last board width","ui.lastLength":"Last piece in each row","ui.doorWidth":"Width of each door","ui.doorHeight":"Height of each door","ui.slopeAngle":"Slope from horizontal","ui.diagonal":"Sloping length","ui.edgeAngle":"Cut angle to the edge","ui.stockCount":"Stock bars used","ui.yield":"Part yield","ui.unplaced":"Unplaced parts","ui.stock":"Stock bar","ui.sheetCount":"Sheets used","ui.cuts":"Cuts","ui.sheet":"Sheet","ui.rotated":"Rotated 90°","ui.yes":"Yes","ui.no":"No","ui.stackedVolume":"Stacked volume including voids","ui.solidEstimate":"Solid estimate from factor","ui.section":"Section","ui.posts":"Posts","ui.bays":"Bays between posts","ui.bayWidth":"Clear width of each bay","ui.componentA":"Component A","ui.componentB":"Component B","ui.mixtureTotal":"Final mixture","ui.slat":"Slat","ui.shelf":"Shelf","ui.door":"Door","ui.side":"Side","ui.frontBack":"Front and back","ui.bottom":"Bottom","ui.back":"Back","ui.topBottom":"Top and bottom","ui.segment":"Segment","ui.oak":"Oak","ui.white":"White","ui.wood":"Wood","ui.finishMaterial":"Finish","ui.hardware":"Hardware","ui.horizontalPart":"Horizontal","ui.verticalPart":"Vertical","ui.csv":"Export result CSV","ui.importCSV":"Import parts CSV","ui.exportParts":"Export parts CSV","ui.csvHelp":"CSV: name,length,width,thickness,qty,material. Dimensions in mm; width and thickness are optional for bars. Export project JSON to preserve banded edges and other settings.","ui.partsAdded":"Parts sent to the project cut list.","ui.sendParts":"Send parts to project cut list","ui.useProjectParts":"Use project cut-list parts","ui.noProjectParts":"The project cut list is still empty.","ui.offcuts":"Reusable offcuts","ui.reuseOffcuts":"Use offcuts as next stock","ui.noOffcuts":"There are no reusable offcuts.","ui.methodHeading":"How to check this calculation","ui.formula":"Formula & conventions","ui.sources":"Sources & references","ui.related":"Continue your project","ui.privacyNote":"Your projects stay in this browser. Export a copy to keep or transfer them.","ui.numberHelp":"Accepts decimal commas, decimal points and fractions such as 2 1/2 or ½. Do not use thousands separators.","ui.unitHelp":"Changing units converts dimensions. Changing currency only changes the label, not exchange rates.","ui.schematic":"Schematic drawing. Written dimensions and the parts list take precedence over screen scale.","ui.heuristic":"Feasible heuristic cutting plan; a global optimum is not guaranteed. Check the sequence, work support and your equipment's cutting capacity.","ui.unplacedWarning":"Some parts did not fit the entered stock. They are listed separately.","ui.densityEstimate":"Weight depends on actual density and moisture. This tool uses the density you entered.","ui.nominalBasis":"Calculated using the nominal dimensions you entered; it does not represent physical volume after planing.","ui.actualBasis":"Calculated using entered actual dimensions. Nominal-dimension billing rules may differ.","ui.frameReference":"The long point is the outside length of each part; the short point is the visible inner edge. The rabbet extends into the profile width.","ui.labelCoverage":"Use the coverage and coat count for your chosen product. Absorption, application and waste change actual consumption.","ui.quantitiesOnly":"Geometric material quantities. Spacing and supports are user inputs; the calculation does not size structural members.","ui.hardwareSpecification":"Enter the clearances for your chosen hardware model. Example values are not a universal specification.","ui.drawerConstruction":"Front and back fit between the sides. A grooved bottom enters the specified groove depth; this list does not define its vertical position.","ui.cabinetConstruction":"Full-height sides; top and bottom between sides. Applied backs preserve outside depth. Shelves deduct the back and entered setback.","ui.sawReference":"Saw setting is measured from a square cut, marked 0° on most mitre saws. Flat cuts only; compound mitres are not calculated.","ui.logEstimate":"Geometric methods applied to measured sections. Radial bark thickness is subtracted twice from diameter. Results do not certify commercial scaling or sawmill yield.","ui.stackedNotSolid":"Stacked volume includes voids. A solid estimate appears only when you enter and enable a factor; this tool has no universal coefficient.","ui.supplierRatio":"Use the manufacturer's ratio and mass or volume basis. Adding volumes is a nominal estimate; real mixtures may not conserve volume.","ui.invalidNumber":"Check numbers and input limits.","ui.integerRequired":"Count must be a whole number.","ui.partsRequired":"Add at least one valid part within the row limit.","ui.tooManyParts":"The batch exceeds this tool's part limit.","ui.doesNotFit":"The parts, clearances or margins do not fit the entered dimensions.","ui.marginTooHigh":"Margin, fees and taxes must add up to less than 100%.","ui.stockRequired":"Add stock with valid dimensions and quantities.","ui.sectionsRequired":"Enter between 2 and 200 measured sections.","ui.sectionOrder":"Section positions must be strictly increasing.","ui.factorRequired":"Enable and enter a factor to price solid volume.","ui.mixUnitMismatch":"Use g or kg for mass; ml or L for volume.","ui.unknownTool":"Tool not found.","ui.about":"About Timbrivo","ui.methods":"Methods & sources","ui.privacy":"Privacy","ui.terms":"Terms of use","ui.contact":"Contact & corrections","ui.loadProject":"Load this example","ui.load":"Open project","ui.duplicate":"Duplicate","ui.delete":"Delete","ui.deleteConfirm":"Delete this saved project?","ui.newProject":"New project","ui.emptyLibrary":"Your saved projects will appear here.","ui.libraryLead":"Save a version to return later. An exported file lets you move the project to another browser.","ui.readGuide":"Read guide","ui.notFound":"This piece is missing.","ui.notFoundLead":"This address was not found. Choose a tool to continue.","ui.skip":"Skip to content","ui.footerLine":"Wood, ideas and measurements that add up.","ui.all":"All","ui.diagram":"Dimensioned drawing","ui.measurements":"Dimensions","ui.guideLabel":"WORKBENCH GUIDE","ui.projectLabel":"LOADABLE PROJECT","ui.stockLimit":"Limits: 200 rows; up to 500 sheet parts and 1,000 linear parts. Stock quantities are finite.","ui.copyProject":"Copy","ui.transferConfirm":"Replace this project's cut list with the calculated parts?","ui.importConfirm":"Open the imported file and replace the current draft? Save or export the draft to keep it.","ui.newConfirm":"Create a new project? Save or export the current one to keep it.","ui.footerCount":"24 tools · {languages} languages","ui.technicalNote":"Clear methods, checkable dimensions.","ui.copiedStock":"Offcuts loaded as stock. Calculate a new plan.","ui.cutSteps":"Numbers on the drawing follow cut order. Offcuts and saw loss remain separate from parts.","ui.liveSummary":"Result calculated from the displayed dimensions.","ui.stalePrint":"Calculate current dimensions before printing or exporting results.","ui.downloadTemplate":"Download CSV template","ui.carryCost":"Add calculated cost to budget","ui.costAdded":"Cost added to the project budget.","ui.noCost":"This calculation has no monetary cost to transfer.","ui.captionOrigin":"Position origin: left edge or base indicated in the drawing.","ui.working":"Calculating the plan…","ui.close":"Close","ui.files":"Files","ui.calculator":"Calculator","ui.howToUse":"How to use","ui.overview":"Overview","ui.resultList":"List & dimensions","ui.notes":"Notes","ui.dimensions":"Dimensions","ui.parameters":"Parameters","ui.previous":"Previous","ui.next":"Next","ui.of":"of","ui.page":"Page","ui.printShort":"Print / PDF","ui.sendPartsShort":"Use in project","ui.offcutsShort":"Reuse offcuts","ui.costShort":"Budget","ui.enableJavaScript":"Enable JavaScript to edit dimensions. Examples and methods remain available below.","ui.emptyRows":"Add a row to get started.","ui.calculateShort":"Calculate","ui.exampleShort":"Example","ui.schematicShort":"Schematic drawing. Check the dimensions.","ui.edgeHint":"Select the edges to band.","ui.quickResult":"Result","ui.reason":"Reason","ui.materialUnavailable":"No stock with matching material and thickness","ui.dimensionsUnavailable":"Insufficient usable dimensions","ui.noUsableStock":"No space or stock quantity available in this plan","ui.grainUnavailable":"Required rotation is blocked by grain","ui.model3D":"3D model","ui.modelLoading":"Preparing 3D model…","ui.modelControls":"3D model. Drag to orbit, use the wheel or + and − to zoom. Arrow keys rotate, Home resets. Click a part for dimensions.","ui.modelDrag":"Drag to rotate · scroll to zoom · click a part","ui.modelUnavailable":"3D is unavailable in this browser. You can continue with the 2D view.","ui.cameraReset":"Reset camera","ui.expandModel":"Expand simulator","ui.cameraView":"Camera","ui.cameraiso":"3D perspective","ui.camerafront":"Front","ui.cameratop":"Top","ui.cameraside":"Side","ui.appearance":"Visual finish","ui.finishoak":"Oak","ui.finishwalnut":"Walnut","ui.finishpine":"Pine","ui.finishwhite":"White MDF","ui.showDimensions":"Dimensions","ui.explodedView":"Exploded view","ui.modelPNG":"Download PNG image","ui.modelGeometric":"Geometric simulation using project dimensions.","ui.modelJoinery":"Actual part dimensions. Hardware and joinery details are not modelled.","ui.modelGroove":"Bottom sized for the groove. Vertical groove position is illustrative; check your assembly.","ui.modelFrame":"Mitred corners. Profile rebates are not modelled.","ui.modelCutLayout":"Parts and offcuts on the selected sheet, at material thickness.","ui.modelStack":"Stack envelope by measured sections. Volume includes voids.","ui.modelLog":"Idealised profile using entered diameters, with bark deduction when applicable.","ui.modelCutSizes":"Cut sizes after edge-band deduction when enabled. One part per type.","ui.modelSinglePart":"One part per type at entered dimensions. The finish is visual only.","slug.tool.slats":"slat-wall-calculator","slug.tool.edge-banding":"edge-banding-calculator","slug.tool.cut-list":"cut-list","slug.tool.lumber":"lumber-volume-calculator","slug.tool.board-feet":"board-foot-calculator","slug.tool.converter":"woodworking-unit-converter","slug.tool.frames":"picture-frame-calculator","slug.tool.shelves":"shelf-spacing-calculator","slug.tool.holes":"shelf-pin-hole-layout","slug.tool.finish":"wood-finish-coverage-calculator","slug.tool.budget":"woodworking-project-cost","slug.tool.deck":"deck-board-calculator","slug.tool.doors":"cabinet-door-size-calculator","slug.tool.drawers":"drawer-box-calculator","slug.tool.cabinet":"cabinet-box-cut-list","slug.tool.angles":"miter-angle-calculator","slug.tool.polygons":"polygon-frame-calculator","slug.tool.linear-cut":"linear-cut-optimizer","slug.tool.sheet-cut":"sheet-cutting-optimizer","slug.tool.weight":"wood-weight-calculator","slug.tool.logs":"log-volume-calculator","slug.tool.stacks":"stacked-wood-volume","slug.tool.fence":"wood-fence-calculator","slug.tool.mix":"finish-mixing-calculator","tool.slats.name":"Slat wall layout","tool.slats.description":"Lay out slats, adjust gaps and mark every position.","tool.slats.method":"Usable width excludes margins. Count mode divides remaining space among internal gaps and selected end gaps. Fixed-gap mode centres the assembly; target-gap mode compares the neighbouring whole-number counts.","tool.edge-banding.name":"Edge banding","tool.edge-banding.description":"Mark edges and consolidate rolls by colour and width.","tool.edge-banding.method":"Only selected edges are added. Each segment receives allowance at both ends, followed by percentage reserve. Each colour and width combination is purchased separately, rounding rolls up.","tool.cut-list.name":"Project cut list","tool.cut-list.description":"Organise dimensions, materials, grain and edges for each part.","tool.cut-list.method":"The list totals area and volume without promising sheet placement. For finished dimensions, band thickness reduces length at short edges and width at long edges. Calculated parts can feed the cutting optimisers.","tool.lumber.name":"Lumber volume","tool.lumber.description":"Add boards and batches in cubic metres, with cost per m³.","tool.lumber.method":"Each part is a rectangular prism using actual dimensions. Cubic millimetres are converted to cubic metres before pricing. The calculation does not automatically add waste or deduct defects.","tool.board-feet.name":"Board feet","tool.board-feet.description":"Calculate board feet and price with an explicit dimension basis.","tool.board-feet.method":"One board foot is 144 cubic inches. Choose nominal or actual dimensions and enter the corresponding values; this tool does not automatically turn a nominal 2×4 into dressed dimensions.","tool.converter.name":"Units & fractions","tool.converter.description":"Convert dimensions and check rounded-fraction error.","tool.converter.method":"Conversions use the exact definition of 1 inch = 25.4 mm. Fractions are rounded to the selected division; the result also reports the physical difference caused by rounding.","tool.frames.name":"Frames & mitres","tool.frames.description":"Go from opening size to cut points with a clear drawing.","tool.frames.method":"The reference can be the visible opening, outside size or rabbet opening. Every rectangular corner uses a 45° cut. The long point is the frame exterior; total length excludes saw loss.","tool.shelves.name":"Shelf spacing","tool.shelves.description":"Find equal openings and the position of every shelf.","tool.shelves.method":"Enter the available inside height. Margins and shelf thicknesses are deducted, and the remainder is divided among all openings, including top and bottom. Positions run from the base to each shelf underside.","tool.holes.name":"Hole layout","tool.holes.description":"Lay out holes on 32 mm or custom centres.","tool.holes.method":"The first hole respects the start margin, and subsequent holes use the chosen pitch while preserving the minimum end margin. Centring distributes the remainder between ends. The drawing is not a full-scale drilling template.","tool.finish.name":"Finish coverage","tool.finish.description":"Calculate area, coats and containers from the product label.","tool.finish.method":"Area totals the chosen faces and optionally all four edges. Multiply by coats and divide by coverage in m² per litre per coat. Reserve is applied before rounding up containers.","tool.budget.name":"Project budget","tool.budget.description":"Bring materials, labour and margin into one checkable calculation.","tool.budget.method":"Margin is a share of selling price, while markup is calculated on cost. Fees and taxes are user-entered percentages of sales; no tax rates are fetched. The result separates cost, profit and charges.","tool.deck.name":"Deck boards","tool.deck.description":"Plan rows, joints, last pieces and stock with reserve.","tool.deck.method":"Boards run along the entered length. The calculation finds whole rows covering the width and shows the last board rip width. Joints consider the end gap and usable stock length after trimming.","tool.doors.name":"Cabinet doors","tool.doors.description":"Size one or two doors with overlay or inset reveals.","tool.doors.method":"Inset doors deduct outer reveals from the opening. Overlay doors add the overlay at each side. The centre gap is deducted before dividing the width among doors.","tool.drawers.name":"Drawer box","tool.drawers.description":"Generate drawer parts using your hardware clearances.","tool.drawers.method":"Side clearances determine outside box width. Front and back fit between sides. The bottom can be applied underneath or fitted in grooves. Enter the clearances and construction required by your runner model.","tool.cabinet.name":"Cabinet box","tool.cabinet.description":"Turn outside dimensions into an editable parts list.","tool.cabinet.method":"This model uses full-height sides, top and bottom between sides, and set-back shelves. Backs can be applied outside or fit between parts. It is a simple carcass; doors, hardware and fasteners are planned separately.","tool.angles.name":"Cut angles","tool.angles.description":"Check joints, slopes and the saw-setting reference.","tool.angles.method":"For two parts with symmetric cuts, halve the inside joint angle. The saw scale measures deviation from a square cut. Slope mode uses run and rise to calculate angle and diagonal.","tool.polygons.name":"Polygon frames","tool.polygons.description":"Calculate segments and cuts for regular polygons.","tool.polygons.method":"The polygon is regular and profile width is perpendicular to each side. Size can reference corners or flats. For odd-sided polygons these are circumcircle and incircle diameters, not distances between actual opposite corners or faces.","tool.linear-cut.name":"Linear cut optimiser","tool.linear-cut.description":"Pack parts into stock lengths with kerf, trim and offcuts.","tool.linear-cut.method":"We compare length-packing heuristics, prioritising fewer unplaced parts, then fewer bars. Stock quantities are finite and materials must match. Saw kerf is deducted after each part, capped by the remaining material at the end.","tool.sheet-cut.name":"Sheet cutting optimiser","tool.sheet-cut.description":"See guillotine cuts with grain, trim and actual stock.","tool.sheet-cut.method":"We compare part orders and cutting sequences. Each part occupies a free rectangle split by guillotine cuts, reserving saw kerf. Grain-locked parts do not rotate. Cut numbers follow execution order in the remaining rectangle.","tool.weight.name":"Wood & panel weight","tool.weight.description":"Estimate mass from dimensions and an entered density.","tool.weight.method":"Geometric part volumes are added and multiplied by density in kg/m³. Density must match the material and moisture condition of the batch; no universal species or moisture is assumed.","tool.logs.name":"Log volume","tool.logs.description":"Compare Smalian, Huber and Newton with an explicit bark basis.","tool.logs.method":"Smalian averages end areas; Huber uses the midpoint section; Newton weights ends and midpoint. Use representative diameters for each section. Entered uniform radial bark thickness is deducted twice from each diameter.","tool.stacks.name":"Stacked wood sections","tool.stacks.description":"Measure a stack profile and keep voids and solid volume distinct.","tool.stacks.method":"The profile is integrated as trapezoids between measured positions and multiplied by constant stack depth. Endpoint heights are not inferred: enter actual positions and heights. Solid conversion is optional and uses only your factor.","tool.fence.name":"Wood fence","tool.fence.description":"Lay out posts and pickets with equal gaps in each bay.","tool.fence.method":"Length includes both end posts. We divide it into bays from the chosen maximum spacing, deduct posts and place pickets with equal gaps including the ends. The target gap is a geometric maximum, not a construction rule.","tool.mix.name":"Mixing & dilution","tool.mix.description":"Separate components and thinner using the manufacturer ratio.","tool.mix.method":"Choose a mass or volume ratio. Thinner percentage can be based on A+B or the final total. The reference amount can be the desired mixture or available component A. Mass is not converted to volume without density.","project.slat-panel.name":"A wall with a new rhythm","project.slat-panel.description":"A 2.40 m wall with 49 slats. Compare adjusted gaps and centring before buying.","project.picture-frame.name":"A frame for your favourite stories","project.picture-frame.description":"A 40 × 60 cm opening, 4 cm profile and 8 mm rabbet. Check the cut points.","project.open-bookcase.name":"Room for your books","project.open-bookcase.description":"An 80 × 180 × 30 cm bookcase with four shelves. Generate parts and plan hole positions.","project.small-cabinet.name":"A small cabinet, carefully planned","project.small-cabinet.description":"An 80 × 90 × 40 cm carcass, two shelves and separately calculated fronts.","project.garden-deck.name":"A place to enjoy the outdoors","project.garden-deck.description":"A 4 × 3 m deck with 140 mm boards. See joints, trim and quantities with reserve.","project.garden-fence.name":"A lighter garden boundary","project.garden-fence.description":"A 10 m fence with four bays. Adjust posts and gaps to complete the quantities."}